问题是postgres Dockerfile将“ / var / lib / postgresql /
data”声明为卷。这只是一个普通目录,它位于映像使用的联合文件系统之外。在没有容器链接到它们之前,这些卷一直存在,直到它们被明确删除。
您有几种选择:
- 使用
--volumes-from
命令与新容器共享数据。仅一次仅运行一个postgres映像时,这才有效,但这是最佳解决方案。 - 在声明该卷之前,编写您自己的Dockerfile来创建数据。创建容器后,该数据将被复制到卷中。
- 编写一个在运行时填充数据库的入口点或cmd脚本。
所有这些建议都要求您在容器运行后使用卷来管理数据。另外,您可以编写自己的Dockerfile,而不必声明一个卷。
dockercommit添加数据后,您可以用来创建新图像。这可能会在短期内起作用,但是绝对不是您应该如何使用容器的方法-它是不可重复的,最终您将用完Union
File System中的各个层。
查看有关管理容器中数据的官方Docker文档,以了解更多信息。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)