docker的挂载分为:
docker挂载的磁盘有一个默认的路径,也可以手动指定绝对路径完成挂载。
默认的挂载路径为:/var/lib/docker/volumes/
若为匿名挂载就是在挂载的时候,不指定挂载磁盘的名称,这样磁盘的名称将会有一串随机数代替。
[root@localhost data]# docker run -d -P --name nginx01 -v /etc/nginx nginx 2cb05e153b0982a647ad80eea8cef52332c17f442e81eb4e0051ce19624d1cb5 参数说明: -P:随机端口映射 -v:这里没有指定宿主机磁盘的名称,则会产生随机名称。 [root@localhost data]# docker volume ls #查看挂载的磁盘 DRIVER VOLUME NAME local 0f175a688227543ae22a470054c1da2d93376277da68387608f421f5a16bee43 local 1e8b4ce6d61660e8e95e946fc5b14786aa2f8daafa0135d4be5c0ed731caa6d6 通过命令可以看到具体的路径: [root@localhost _data]# docker volume inspect 1e8b4ce6d61660e8e95e946fc5b14786aa2f8daafa0135d4be5c0ed731caa6d6 [ { "CreatedAt": "2021-04-01T00:43:07-04:00", "Driver": "local", "Labels": null, "Mountpoint": "/var/lib/docker/volumes/1e8b4ce6d61660e8e95e946fc5b14786aa2f8daafa0135d4be5c0ed731caa6d6/_data", "Name": "1e8b4ce6d61660e8e95e946fc5b14786aa2f8daafa0135d4be5c0ed731caa6d6", "Options": null, "Scope": "local" } ]
若挂载的时候指定名称,则名具名挂载。参考如下:
[root@localhost data]# docker run -d -P --name nginx02 -v test-nginx:/etc/nginx nginx f132a2edcf332c80a3a74945162115d9169918f94e80407a396352cf617116bb 参数说明: -v:这里指定了名称,但是不是一个绝对路径,所以仍然会放在默认位置。 [root@localhost data]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f132a2edcf33 nginx "/docker-entrypoint.…" 4 seconds ago Up 2 seconds 0.0.0.0:49154->80/tcp nginx02 2cb05e153b09 nginx "/docker-entrypoint.…" 53 seconds ago Up 51 seconds 0.0.0.0:49153->80/tcp nginx01 440a5df74aa3 mysql:5.7 "docker-entrypoint.s…" About an hour ago Up About an hour 33060/tcp, 0.0.0.0:3310->3306/tcp mysql01 3cf493d3feb0 portainer/portainer "/portainer" 18 hours ago Up 18 hours 0.0.0.0:8088->9000/tcp clever_kowalevski [root@localhost data]# docker volume ls DRIVER VOLUME NAME local 0f175a688227543ae22a470054c1da2d93376277da68387608f421f5a16bee43 local 1e8b4ce6d61660e8e95e946fc5b14786aa2f8daafa0135d4be5c0ed731caa6d6 local test-nginx [root@localhost data]# docker volume inspect test-nginx [ { "CreatedAt": "2021-04-01T00:43:56-04:00", "Driver": "local", "Labels": null, "Mountpoint": "/var/lib/docker/volumes/test-nginx/_data", "Name": "test-nginx", "Options": null, "Scope": "local" } ] [root@localhost data]# cd /var/lib/docker/volumes/test-nginx/_data [root@localhost _data]# ll total 36 drwxr-xr-x. 2 root root 26 Apr 1 00:43 conf.d -rw-r--r--. 1 root root 1007 Mar 30 10:47 fastcgi_params -rw-r--r--. 1 root root 2837 Mar 30 10:47 koi-utf -rw-r--r--. 1 root root 2223 Mar 30 10:47 koi-win -rw-r--r--. 1 root root 5231 Mar 30 10:47 mime.types lrwxrwxrwx. 1 root root 22 Mar 30 10:58 modules -> /usr/lib/nginx/modules -rw-r--r--. 1 root root 643 Mar 30 10:58 nginx.conf -rw-r--r--. 1 root root 636 Mar 30 10:47 scgi_params -rw-r--r--. 1 root root 664 Mar 30 10:47 uwsgi_params -rw-r--r--. 1 root root 3610 Mar 30 10:47 win-utf
挂载的时候可以限制容器的权限:
[root@localhost volumes]# docker run -d -P --name nginx03 -v test-nginx:/etc/nginx:ro nginx 73158e359693547285686bcea7e291194081500bd1124ef6ca56ef30261ed017 参数说明: -v: test-nginx:/etc/nginx:ro后面的ro描述readonly,也可以为rw。
另外在build镜像的时候也可以挂载。
原文:https://www.cnblogs.com/tortoise512/p/14605845.html