在容器之间共享和更新Docker数据容器
我有以下容器:
- 从github回购直接在quay.io中build立的数据容器,基本上就是一个网站。
- FPM容器
- NGINX容器
他们三人联系在一起,工作得很好。 但问题是,每当我改变网站(数据容器)中的东西,它被重build(当然),我必须删除该容器,FPM和NGINX,并重新创build所有能够读取新的内容。
我从一个“备份方法”开始,将数据从容器复制到主机目录,并将其安装到FPM和NGINX容器中,这样我就可以在不重新启动/删除任何服务的情况下更新数据。
但是将数据从数据容器移动到主机的想法实际上不像我。 所以想知道是否有一个“docker路”或更好的方式来做到这一点。
谢谢!
更新:添加更多的上下文
Dockerfile d`ata容器定义
FROM debian ADD data/* /home/mustela/ VOLUME /home/mustela/
data
只有2个文件: hello.1
和hello.2
编译图像:
docker build -t="mustela/data" .
运行数据容器:
docker run --name mustela-data mustela/data
创build另一个容器以链接到前一个容器:
docker run -d -it --name nginx --volumes-from mustela-data ubuntu bash
列出已安装的文件:
docker exec -it nginx ls /mustela/home
结果:
hello.1 hello.2
现在,让我们重build一下数据容器的镜像,但是首先添加一些新的文件,所以现在我们里面有data
hello.1 hello.2 hello.3 hello.4
docker rm mustela-data docker build -t="mustela/data" . docker run --name mustela-data mustela/data
如果我从正在运行的容器中运行ls /home/mustela
,则文件不会被更新:
docker exec -it nginx ls /mustela/home
结果:
hello.1 hello.2
但是如果我运行一个新的容器,我可以看到这些文件
docker run -it --name nginx2 --volumes-from mustela-data ubuntu ls /home/mustela
结果: hello.1 hello.2 hello.3 hello.4