跨容器

时间:2015-07-05 13:25:45

标签: docker containers

我有以下容器:

  • 从github repo直接在quay.io中构建的数据容器,基本上是一个网站。
  • FPM容器
  • NGINX容器

他们三个联系在一起,工作得很好。但问题是,每次我在网站(数据容器)中更改它时,它都会重建(当然),我必须删除该容器以及FPM和NGINX并重新创建它们以便能够读取新内容。

我开始使用“备份方法”,将数据从容器复制到主机目录并将其安装到FPM和NGINX容器中,这样我就可以在不重新启动/删除任何服务的情况下更新数据。

但是将数据从数据容器移动到主机的想法,真的不喜欢我。所以想知道是否有“码头方式”或更好的方式。

谢谢!

更新:添加更多上下文

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

创建另一个容器以链接到前一个容器:

docker run -d -it --name nginx --volumes-from mustela-data ubuntu bash

列出已安装的文件:

docker exec -it nginx ls /mustela/home

结果:

hello.1 hello.2

现在,让我们重建数据容器图片,但首先添加一些新文件,所以现在在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

0 个答案:

没有答案