我有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,但是我不能这样做。我不想只复制文件,因为它会变成静态文件,但我想读取动态更新的文件以读取最新更新。有人可以建议出路吗?
答案 0 :(得分:3)
使用命名卷将update.txt存储在主机上的该卷中。
在两个容器中装入该卷。
然后容器1可以访问容器1写入的所有更改。
答案 1 :(得分:0)
首先,使用以下命令创建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。写在第一个容器中的内容存在于第二个容器中。