22-具名挂载和匿名挂载
1 匿名挂载
匿名挂载就是在指定数据卷的时候,不指定容器路径对应的主机路径,这样对应映射的主机路径就是默认的路径/var/lib/docker/volumes/中自动生成一个随机命名的文件夹。
如下运行并匿名挂载Nginx容器:
[root@iZwz99sm8v95sckz8bd2c4Z ~]# docker run -d -P --name nginx01 -v /etc/nginx nginx
d3a27b969d122d5516cac75e99b17dff7aaaf1e0c042385c6b05990053f1259
查看所有的数据卷volume的情况, VOLUME NAME这里的值是真实存在的目录。
  [root@iZwz99sm8v95sckz8bd2c4Z ~]# docker volume ls
  DRIVER    VOLUME NAME
  local     0cd45ab893fc13971219ac5127f9c0b02491635d76d94183b0261953bdb52d26
  local     668a94251e562612880a2fdb03944d67d1acdbbdae6ef7c94bee8685644f2956
  local     e605f3dc4bf11ab693972592b55fb6911e5bf2083425fd58869c5f574998a09a
2 具名挂载
具名挂载,就是指定文件夹名称,区别于指定路径挂载,这里的指定文件夹名称是在Docker指定的默认数据卷路径下的。通过docker volume ls命令可以查看当前数据卷的目录情况。
  [root@iZwz99sm8v95sckz8bd2c4Z ~]# docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx
  4ceaff19e5275dcd3014a8e7a8af618f7f7ce0da18d605c7c41a8653e78bf912
  [root@iZwz99sm8v95sckz8bd2c4Z ~]# docker volume ls
  DRIVER    VOLUME NAME
  local     0cd45ab893fc13971219ac5127f9c0b02491635d76d94183b0261953bdb52d26
  local     668a94251e562612880a2fdb03944d67d1acdbbdae6ef7c94bee8685644f2956
  local     e605f3dc4bf11ab693972592b55fb6911e5bf2083425fd58869c5f574998a09a
  local     juming-nginx
查看指定的数据卷信息的命令:docker volume inspect数据卷名称
  [root@iZwz99sm8v95sckz8bd2c4Z ~]# docker volume inspect juming-nginx
  [
      {
          "CreatedAt": "2020-12-29T22:40:25+08:00",
          "Driver": "local",
          "Labels": null,
          "Mountpoint": "/var/lib/docker/volumes/juming-nginx/_data",
          "Name": "juming-nginx",
          "Options": null,
          "Scope": "local"
      }
  ]
可以看到主机数据卷挂载在/var/lib/docker/volumes/juming-nginx/_data上
Docker所有的数据卷默认在/var/lib/docker/volumes/ 目录下(如果我们没有指定挂载目录的话,就挂载在这个位置。如果我们没有起名字,就是匿名挂载。否则就是具名挂载)
匿名挂载,具名挂载,指定路径挂载的命令区别如下:
-v 容器内路径 匿名挂载
-v 卷名:容器内路径 具名挂载
-v /宿主机路径:容器内路径 指定路径挂载
指定数据卷映射的相关参数:
ro —— readonly 只读。设置了只读则只能操作宿主机的路径,不能操作容器中的对应路径。
rw ----- readwrite 可读可写
[root@iZwz99sm8v95sckz8bd2c4Z ~]# docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:ro nginx
[root@iZwz99sm8v95sckz8bd2c4Z ~]# docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:rw nginx

默认情况下是rw
 
                    
                
 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号