docker的具名掛載與匿名掛載實現(xiàn)
大家好,今天我們分享一下docker 的具名掛載與匿名掛載
以這條命令舉例
[root@localhost ~]# docker run -d -P --name nginx02 -v /etc/nginx/ nginx d8e9b9084cf884e7e0d11c560c3f50d94f2d4a2d9c77fccb3f52b5cfd8e55392 [root@localhost ~]#
這里我們就沒有給它指定端口: 它對應的外網(wǎng)端口是隨即的
查看一下正在運行的容器:
[root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d8e9b9084cf8 nginx "/docker-entrypoint.…" 11 minutes ago Up 11 minutes 0.0.0.0:49153->80/tcp, :::49153->80/tcp nginx02 6d6fa6a4c6d7 5d0da3dc9764 "/bin/bash" 32 hours ago Up 32 hours nice_panini [root@localhost ~]#
對應的外網(wǎng)端口是49153
我們可以使用瀏覽器上訪問:http://192.168.1.12:49153
這是docker數(shù)據(jù)卷命令的幫助:
[root@localhost ~]# docker volume --help Usage: docker volume COMMAND Manage volumes Commands: create Create a volume inspect Display detailed information on one or more volumes ls List volumes prune Remove all unused local volumes rm Remove one or more volumes Run 'docker volume COMMAND --help' for more information on a command.
這些都是匿名的掛載 ,因為沒有給它起名字
DRIVER VOLUME NAME local 3f0cc224bb62dceae38c25d6eaee76512b39ec786590099f4b2930674640756f local 8e16818bb95e740e59e5ef920e54751eb64db44f4cf43841a9c45aa6ad6646cc local 686e9b7764c19581aea3107940fc28c68121759ce28b31fabc0fce00659ff7ca local 882c0d1810e3ac6fddabcff2c65f1022605f450a6c49504edf57e78de14da1e5 local 1490f17c760b935d926fb1fedc7de4e0e07f1084fcf8c769c672d50f43757f8f local 471762be4837d40ad175b7cfe74b81a51b4b3e752cb6f15e7e79d09ffc5f65fc local af4dc486d8335ec0e524c0e30a0ae037ef05dfa7a4ed3e4e0dd59954c5084a9e local c26b0f08ebdb140d91cb450313e9e314239c1c3553a612e6534154006aa19744 local c52728c97a7ee672216ccb2d4392fa83bc480dd9646ddb5577e1124eb98e15b6
這里寫一個具名掛載
[root@localhost ~]# docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx
看最后的一行,就是具名掛載
[root@localhost ~]# docker volume ls DRIVER VOLUME NAME local 3f0cc224bb62dceae38c25d6eaee76512b39ec786590099f4b2930674640756f local 8e16818bb95e740e59e5ef920e54751eb64db44f4cf43841a9c45aa6ad6646cc local 686e9b7764c19581aea3107940fc28c68121759ce28b31fabc0fce00659ff7ca local 882c0d1810e3ac6fddabcff2c65f1022605f450a6c49504edf57e78de14da1e5 local 1490f17c760b935d926fb1fedc7de4e0e07f1084fcf8c769c672d50f43757f8f local 471762be4837d40ad175b7cfe74b81a51b4b3e752cb6f15e7e79d09ffc5f65fc local af4dc486d8335ec0e524c0e30a0ae037ef05dfa7a4ed3e4e0dd59954c5084a9e local c26b0f08ebdb140d91cb450313e9e314239c1c3553a612e6534154006aa19744 local c52728c97a7ee672216ccb2d4392fa83bc480dd9646ddb5577e1124eb98e15b6 local juming-nginx
顯示數(shù)據(jù)卷的具體信息
[root@localhost ~]# docker volume inspect juming-nginx [ { "CreatedAt": "2022-03-05T18:16:53+08:00", "Driver": "local", "Labels": null, "Mountpoint": "/var/lib/docker/volumes/juming-nginx/_data", "Name": "juming-nginx", "Options": null, "Scope": "local" } ]
docker 容器中所有的卷,在沒有指定目錄的情況下,都在var/lib/docker/volumes/juming-nginx/_data",
我們可以通過具名掛載找到卷的位置,大多數(shù)情況下,我們使用具名掛載
關于docker的掛載問題,有三個比較容易混淆的概念: (區(qū)分的方式)
1.具名掛載:-v 參數(shù) 卷名:容器內(nèi)路徑
2.匿名掛載:-v 參數(shù)后面 沒有寫上容器之外的地址, docker 自己會在docker內(nèi)部給你找個位置
3.指定路徑掛載: -v /宿主機路徑::容器內(nèi)路徑
這里有一個權限問題:
[root@localhost ~]# docker run -d -P --name nginx03 -v juming-nginx:/etc/nginx:rw nginx 6590da464b6ea5cecf58f1cfcdfe2df35092383adb7aaddac4ca5d463367c979
rw :可讀可寫的權限
ro : 可讀權限
[root@localhost ~]# docker run -d -P --name nginx03 -v juming-nginx:/etc/nginx:ro nginx
這個會對我們掛載出來的內(nèi)容進行限定
ro 權限說明命令只可以被宿主機操作,容器的內(nèi)部將無法進行操作
平時不需要動它
到此這篇關于docker的具名掛載與匿名掛載實現(xiàn)的文章就介紹到這了,更多相關docker具名掛載與匿名掛載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Docker使用編寫dockerfile啟動node.js應用
這篇文章主要介紹了Docker使用編寫dockerfile啟動node.js應用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01supervisor下的Dockerfile的多服務鏡像封裝操作
這篇文章主要介紹了supervisor下的Dockerfile的多服務鏡像封裝操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11