【问题标题】:docker: get files from one container to anotherdocker:将文件从一个容器获取到另一个容器
【发布时间】:2020-03-22 15:44:12
【问题描述】:
我有 2 个从 2 个 Dockerfile 创建的 docker 容器。
docker run container1 # It updates a txt (update.txt) file every minutes and store it in the same container
docker run container2 --link container1 # A web server which in intended to read the updated file in container1
现在我想访问 container2 中的文件 update.txt 但我做不到。我不想只复制文件,因为它会变成静态的,但我想读取动态更新的文件以读取最新的更新。任何人都可以提出出路吗?
【问题讨论】:
标签:
docker
docker-compose
dockerfile
【解决方案1】:
使用命名卷将 update.txt 存储在主机上的该卷中。
在两个容器中安装此卷。
容器 1 写入的所有更改都可以在容器 2 中访问。
【解决方案2】:
首先,使用以下命令创建一个 docker 卷
$ docker volume create --name sharedVolume
sharedVolume
然后通过挂载上面创建的卷来启动第一个容器,并将数据写入卷将被挂载的位置。
$ docker run -it -v sharedVolume:/dataToWrite ubuntu
root@1021d9260d7b:/# echo "DATA Written" >> /dataToWrite/Example.txt
root@1021d9260d7b:/# cat /dataToWrite/Example.txt
DATA Written
现在,启动第二个容器并挂载您在上面创建的相同卷,并检查第二个容器中是否存在相同的文件
$ docker run -it -v sharedVolume:/dataToWrite alpine
/ # cat /dataToWrite/Example.txt
DATA Written
如上所示,第一个容器是 ubuntu,第二个容器是 alpine。写入第一个容器的内容存在于第二个容器中。