gpt4 book ai didi

postgresql - 我可以从现有数据库容器构建 docker 镜像吗?

转载 作者:行者123 更新时间:2023-11-29 11:56:34 26 4
gpt4 key购买 nike

我是 docker 的新手。我正在使用 docker compose 来管理容器。

我的目标是让数据库容器保留或不保留数据,其他开发人员无需许多手动步骤(pg_dump 和 pg_store 等)即可在本地运行他们的开发环境。

我想知道我是否可以构建数据库快照的 docker 镜像 (postgres)。这可能吗?如果没有,使用 docker 执行此操作的推荐方法是什么?

谢谢。

最佳答案

在 docker 中,你基本上可以在两个地方保存数据:

  1. 在容器内(默认)
  2. 一卷

数据库容器被配置为以卷的形式保存数据,因为这样数据可以在容器删除后继续存在。它也更快。当您从容器创建图像时,卷中的数据不会进入。

但是你可以创建一个数据库容器,它有一个archive 脚本,它将执行pg_dumpcp并将结果保存在安装的任何卷之外的任何目录中。因此数据将在容器内并可以飞出到图像中。

然后使用docker commit <container id>将更改保存到新图像。标记新图像 docker tag <image id> registry/postgres:withdata并做一个 docker push .

Dockerfile包括一个脚本,在数据库启动后,检查它是否为空。如果它是空的,使用 pg_restore 恢复它或 cp来自容器。

好吧,给你一点路由只是一个想法。这是可能的,只需要一点点工作。

问候

关于postgresql - 我可以从现有数据库容器构建 docker 镜像吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40030570/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com