当前位置: 首页 > 知识库问答 >
问题:

docker容器的持久化数据库

越源
2023-03-14

我在我的项目中使用postgres docker映像。对于初始化,我使用以下命令来创建和初始化我的数据库(表、视图、数据…)

复制sql_dump.sql /docker-entrypoint-initdb.d

容器停止和删除后是否可以保留这些数据?例如,当我运行postgres的图像时,它将使用这些数据创建数据库,而每次容器启动时都没有加载脚本。只需加载第一次运行创建的数据。

我做了一些研究,发现了VOLUME命令,但我不知道如何使用它,我是Docker的新手。谢谢你的帮助。我正在使用Docker For Win v18。

共有1个答案

许鸿志
2023-03-14

你可以使用docker命名卷更多信息可以在这里找到。

这将创建一个名为postgres-data的命名卷

docker volume create postgres-data 

并说这是您创建容器的命令。

docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres

把那个换成这个。

docker run --name some-postgres  -v postgres-data:/var/lib/postgresql -e POSTGRES_PASSWORD=mysecretpassword -d postgres

这应该会在/var/lib/postgresql下挂载postgres-data卷。它们能初始化您的数据库吗?当您停止和启动容器时,它将包含持久化的数据。

-HTH

 类似资料:
  • 并了解了如何制作仅数据容器:http://container42.com/2014/11/18/data-only-container-madness/ 我也看到了与我类似的问题:如何在docker中处理持久存储(例如数据库 但如果我有一个灯服务器设置..我用数据容器进行了一切很好的设置,而不是将它们“直接”链接到我的源操作系统,偶尔做一次备份… 总比有人过来重新启动我的服务器..我如何重新设置我

  • 在docker compose v3容器关闭并重新启动后,我很难持久化postgres数据。这似乎是一个常见的问题,但经过大量搜索,我一直无法找到有效的解决方案。 我的问题与此类似:如何使用卷在dockerized postgres数据库中持久化数据,但解决方案不起作用-因此请不要关闭。我将通过下面的所有步骤来复制这个问题。 这是我的docker-compose文件: 这是我调出并写入数据库后的终

  • 警告:容器被设计为无状态的实例,任何需要持久化的数据,请采用数据库或文件系统保存在容器实例之外,我们不对保存在容器内的数据提供任何保障。当 DaoCloud 需要迁移,或用户扩容容器资源时,容器内的数据将会遗失,并且无法找回。 使用数据库服务 DaoCloud 在服务集成模块中提供了 MySQL、Redis、MongoDB、InfluxDB 等数据服务,如您需要做内容的持久化保存,可以选择使用 M

  • 为了学习数据的持久化,写一个简单的地址薄合约.虽然这个例子因为各种原因作为生产环境的合约不太实用,但它是一个很好的合约用来学习EOSIO的数据持久化并且不会因为与eosio multi_index不相关的相关业务逻辑分心. Step 1:创建一个新的文件夹 进入之前的目录: cd /Users/zhong/coding/CLion/contracts 为我们的合约创建一个新的目录并进去: mkd

  • 数据落盘问题的由来 这本质上是数据持久化问题,对于有些应用依赖持久化数据,比如应用自身产生的日志需要持久化存储的情况,需要保证容器里的数据不丢失,在Pod挂掉后,其他应用依然可以访问到这些数据,因此我们需要将数据持久化存储起来。 数据落盘问题解决方案 下面以一个应用的日志收集为例,该日志需要持久化收集到ElasticSearch集群中,如果不考虑数据丢失的情形,可以直接使用前面提到的应用日志收集一