我在docker环境中创建了一个rails应用程序,它链接到一个postgres实例.我编辑了
难道不可能在提交中保存数据,然后在提交后重新使用吗?
我用了postgres的图片:https://registry.hub.docker.com/_/postgres/
我在docker环境中创建了一个rails应用程序,它链接到一个postgres实例.我编辑了
难道不可能在提交中保存数据,然后在提交后重新使用吗?
我用了postgres的图片:https://registry.hub.docker.com/_/postgres/
问题是postgres Dockerfile将"/var/lib/postgresql/data"声明为卷.这只是一个普通目录,位于图像使用的Union文件系统之外.卷一直存在,直到没有容器链接到它们,并且它们被显式删除.
你有几个 Select :
--volumes-from
命令与新容器共享数据.这只在一次只有一个正在运行的postgres映像时才起作用,但这是最好的解决方案.所有这些建议都要求您在容器运行后使用卷来管理数据.或者,您可以编写自己的Dockerfile,而不必声明卷.然后,在添加数据后,可以使用docker commit
创建新图像.这可能会在短期内奏效,但绝对不是您应该如何使用容器——它是不可重复的,最终会耗尽Union文件系统中的层.
更多信息,请查看managing data in containers上的Docker官方文档.