首页 > 其他 > 详细

docker 5 :挂载的方式

时间:2021-04-01 19:07:11      阅读:20      评论:0      收藏:0      [点我收藏+]

docker的挂载分为:

  1. 绝对路径挂载
  2. 匿名挂载
  3. 具名挂载

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镜像的时候也可以挂载。

docker 5 :挂载的方式

原文:https://www.cnblogs.com/tortoise512/p/14605845.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!