我可以从现有的数据库容器build立一个泊坞窗图像吗?

我是docker工人。 我正在使用docker撰写来pipe理容器。

我的目标是让数据库容器保持或不保存数据,可以由其他开发人员在没有许多手动步骤(pg_dump和pg_store等)的情况下在本地运行其开发环境。

我想知道是否可以构build数据库快照的docker镜像(postgres)。 这可能吗? 如果不是,build议使用docker做到这一点的方法是什么?

谢谢。

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

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

数据库容器被configuration为将数据保存在卷中,因为这样数据可以在容器删除后存活。 也是更快。 从容器创build图像时,卷的数据将不会进入。

但是您可以创build一个具有存档脚本的数据库容器,该脚本将执行pg_dumpcp ,并将结果保存在所有已安装卷之外的任何目录中。 所以数据将在容器内,并可以飞出一个图像。

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

Dockerfile包含一个脚本,在数据库启动之后,检查它是否为空。 如果为空,则使用容器中的pg_restorecp恢复。

那么这只是一个想法给你一点路线。 这是可能的,只需要一点点的工作。

问候