docker 系列: 具名、匿名掛載介紹

目錄

匿名掛載

1.1 含義

1.2 匿名掛載示例

1.3 文件同步測試

具名掛載

2.1 含義

2.2 具名掛載示例

查看掛載數(shù)據(jù)卷命令

4、總結(jié)


今天給大家聊聊docker具名、匿名掛載的相關(guān)知識,一起來學(xué)學(xué)吧!

  1. 匿名掛載

1.1 含義

匿名掛載就是指定容器內(nèi)路徑,dockers run 每掛載一個目錄就會宿主主機自動創(chuàng)建一個隨機字符串的目錄。目錄/var/lib/docker/volumes/隨機字符串。

注意:里面的_data目錄和對應(yīng)容器內(nèi)目錄進(jìn)行同步

1.2 匿名掛載示例

  1. 運行容器
  2. docker run -d -p 8000:80 --name nginxtest -v /etc/nginx nginx
  3. 查看nginxtest容器目錄掛載情況
  4. docker inspect --format="{{json .Mounts}}" 7880ad6076b1

查看掛載內(nèi)容如下:

  1. [
  2. {
  3. "Type":"volume"undefined
  4. "Name":"6d05e4012610c5427b589f38009ade0d90bd5009896d251f545979ddb736e1b8"undefined "Source":"/var/lib/docker/volumes/6d05e4012610c5427b589f38009ade0d90bd5009896d251f545979ddb736e1b8/_data"undefined
  5. "Destination":"/etc/nginx"undefined
  6. "Driver":"local"undefined
  7. "Mode":""undefined
  8. "RW":trueundefined
  9. "Propagation":""
  10. }
  11. ]

返回參數(shù)說明:

  • 容器內(nèi)路徑:Destination:/var/lib/docker/volumes/6d05e4012610c5427b589f38009ade0d90bd5009896d251f545979ddb736e1b8/_data

  • 宿主主機路徑:Source:/etc/nginx



1.3 文件同步測試

宿主主機測試命令

  1. #進(jìn)入掛載目錄,創(chuàng)建 1.txt 文件
  2. cd /var/lib/docker/volumes/6d05e4012610c5427b589f38009ade0d90bd5009896d251f545979ddb736e1b8/_data
  3. touch 1.txt

容器內(nèi)部測試命令

  1. docker exec -it nginxtest /bin/bash
  2. cd /etc/nginx
  3. touch 22.txt

宿主主機

容器內(nèi)部

  1. 具名掛載

2.1 含義

具名掛載就是掛載的同時指定一個有具體含義的名字,方便后續(xù)和容器對應(yīng)以及后續(xù)的運維,便于查找掛載目錄。

2.2 具名掛載示例

  1. #運行容器
  2. docker run -d -p 8001:80 --name nginxtest02 -v nginxtest02:/etc/nginx nginx
  3. #查看容器掛載目錄
  4. docker inspect --format="{{json .Mounts}}" 4cd1e3241698

查看容器掛載內(nèi)容

  1. [
  2. {
  3. "Type":"volume"undefined
  4. "Name":"nginxtest02"undefined
  5. "Source":"/var/lib/docker/volumes/nginxtest02/_data"undefined
  6. "Destination":"/etc/nginx"undefined
  7. "Driver":"local"undefined
  8. "Mode":"z"undefined
  9. "RW":trueundefined
  10. "Propagation":""
  11. }
  12. ]

返回參數(shù)說明:

容器內(nèi)路徑:Destination:/etc/nginx

宿主主機路徑:Source:/var/lib/docker/volumes/nginxtest02/_data

具體的文件同步和匿名掛載一樣,大家可以自己測試。

  1. 查看掛載數(shù)據(jù)卷命令

docker volume ls

4、總結(jié)

宿主主機掛載目錄對應(yīng)同步的文件在_data 目錄里面。雙向?qū)崟r同步。

指定具體的掛載目錄名,便于查找和管理,如果你的容器比較多,都是不可讀的字符串,那么可維護(hù)性會比較差,建議采用具名掛載。


作者:郝光明 IT技術(shù)分享社區(qū)


歡迎關(guān)注:IT技術(shù)分享社區(qū)