我可以訪問安裝了 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
讓我們創建一個卷,將其附加到nginx容器,/usr/share/nginx/html并確保我們可以看到服務器和容器上的檔案:
[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的目錄內容已被 ./usr/share/nginx/html目錄中包含的內容有效篡改container1。此外,container1
s 目錄內容不受此程序的影響。
從安全/穩定性的角度來看,我可以理解,擁有一個包含對應于不同檔案系統路徑的檔案的卷可能沒有什么意義。但是有可能通過一些不同的方式來做到這一點嗎?必須有用例,一切都有用例。
uj5u.com熱心網友回復:
在問題的評論中回答。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/532844.html
