我可以访问一台安装了Docker的centos 7.9计算机。在本例中,我将使用nginx
映像以及/usr/share/xml/fontconfig
和/usr/share/nginx/html
目录。您可以看到,这些目录包含nginx
的一些重要文件:
root@f7990388c7d0:/# ls /usr/share/nginx/html/
50x.html index.html
root@f7990388c7d0:/# ls /usr/share/xml/fontconfig/
fonts.dtd
让我们创建一个卷,将其附加到/usr/share/nginx/html
处的nginx
容器,并确保我们可以同时看到服务器和容器上的文件:
[cloud_user@eb993010811c ~]$ docker volume create my_volume
my_volume
[cloud_user@eb993010811c ~]$ docker container run -d --name container1 -v my_volume:/usr/share/nginx/html nginx
f7990388c7d0302db7f1135549bf0bb1a024256d9a89ebead306a6d775449514
[cloud_user@eb993010811c ~]$ docker volume inspect my_volume
[
{
"CreatedAt": "2022-11-09T14:46:38Z",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/my_volume/_data",
"Name": "my_volume",
"Options": {},
"Scope": "local"
}
]
[cloud_user@eb993010811c ~]$ sudo ls /var/lib/docker/volumes/my_volume/_data
50x.html index.html
[cloud_user@eb993010811c ~]$ docker container exec -it container1 ls /usr/share/nginx/html
50x.html index.html
[cloud_user@eb993010811c ~]$ docker container exec -it container1 ls /usr/share/xml/fontconfig
fonts.dtd
到目前为止一切都很好。现在,让我们假设我们将 * 相同 * 的卷挂载到 * 不同 * 的容器和 * 不同 * 的文件系统路径上:
[cloud_user@eb993010811c ~]$ docker container run -d --name container2 -v my_volume:/usr/share/xml/fontconfig nginx
7ceec36b8c4d7d0eb172c1926d273d4e2e18b2cf509c8c5a18bf1302e98aedfc
[cloud_user@eb993010811c ~]$ sudo ls /var/lib/docker/volumes/my_volume/_data
50x.html index.html
[cloud_user@eb993010811c ~]$ docker container exec -it container2 ls /usr/share/xml/fontconfig
50x.html index.html
[cloud_user@eb993010811c ~]$ docker container exec -it container1 ls /usr/share/xml/fontconfig
fonts.dtd
[cloud_user@eb993010811c ~]$ docker container exec -it container1 /bin/bash
root@f7990388c7d0:/# ls /usr/share/nginx/html/
50x.html index.html
root@f7990388c7d0:/# ls /usr/share/xml/fontconfig/
fonts.dtd
我们可以看到Docker服务器没有看到fonts.dtd
文件,并且container2
的目录内容已经被container1
的/usr/share/nginx/html
目录中包含的内容有效地侵占了。另外,container1
的目录内容不受此过程的影响。
从安全性/稳定性的Angular 来看,我可以理解让一个卷中的文件对应于不同的文件系统路径可能没有什么意义。但是,有没有可能通过一些不同的方式来实现这一点?这将 * 必须 * 有用例,每件事都有用例。
1条答案
按热度按时间vdzxcuhz1#
以注解的方式回答问题。