在容器之间共享和更新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.1hello.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