docker笔记之具名挂载与匿名挂载
文章目录
- 一、具名挂载和匿名挂载是什么?
- 二、使用步骤
- 1.具名挂载
- 2.匿名挂载
- 3.指定路径挂载
- 4.扩展
- 总结
一、具名挂载和匿名挂载是什么?
具名挂载的顾名思义就是有名字,这个名字是我们自己给取的,使用了具名挂载之后,我们可以通过命令查看自己制定的这个名字。
匿名挂载的意思就是不指定名字,让系统给他默认生成一个长长的字符串作为名字。
两者都可以实现把docker容器内部的目录挂载到主机上来,以防止数据的丢失,然后也可以通过宿主机操作容器内部的数据,这样的话,会更加方便,不过最主要的还是体现在第一点,确保安全性。
二、使用步骤
1.具名挂载
#以具名挂载的方式启动容器,需要注意的是,p需要大写,没有写端口的话,就是随机分配端口
# 格式:-v 具名名称:/容器内路径
[root@iZbp10d5h2h0qbsabf055iZ ~]# docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx
e056ecd764d8d96c97d4b8bb3172fc569151fd60ff897195d5a6d813113487e8
nginx容器已经成功运行起来了
[root@iZbp10d5h2h0qbsabf055iZ ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e056ecd764d8 nginx "/docker-entrypoint.…" 10 seconds ago Up 9 seconds 0.0.0.0:49153->80/tcp nginx02
接下来通过docker volume ls
查看卷挂载的情况,可以看到确实有一个叫做juming-nginx的卷挂载。
[root@iZbp10d5h2h0qbsabf055iZ ~]# docker volume ls
DRIVER VOLUME NAME
local d4eea76262dd14ccdf40faae90d916a98f2e97241c9faa463ed8e2e1c057eecd
local e8db426c1ca6978fabeaae31c88a9285a8ee009e2422ef36d2969bf243f8f09e
local juming-nginx
[root@iZbp10d5h2h0qbsabf055iZ ~]#
查看juming-nginx这个具体的卷
#Mountpoint代表宿主机路径,默认情况下,在容器内的路径全部挂载这宿主机的这个位置。
[root@iZbp10d5h2h0qbsabf055iZ ~]# docker volume inspect juming-nginx
[{"CreatedAt": "2021-02-23T18:55:44+08:00","Driver": "local","Labels": null,"Mountpoint": "/var/lib/docker/volumes/juming-nginx/_data","Name": "juming-nginx","Options": null,"Scope": "local"}
]
[root@iZbp10d5h2h0qbsabf055iZ ~]#
查看一下宿主机上对应的位置。
[root@iZbp10d5h2h0qbsabf055iZ ~]# cd /var/lib/docker/volumes/
[root@iZbp10d5h2h0qbsabf055iZ volumes]# ls #显示所有的卷信息
backingFsBlockDev juming-nginx
d4eea76262dd14ccdf40faae90d916a98f2e97241c9faa463ed8e2e1c057eecd metadata.db
e8db426c1ca6978fabeaae31c88a9285a8ee009e2422ef36d2969bf243f8f09e
[root@iZbp10d5h2h0qbsabf055iZ volumes]# cd juming-nginx/
[root@iZbp10d5h2h0qbsabf055iZ juming-nginx]# ls
_data
[root@iZbp10d5h2h0qbsabf055iZ juming-nginx]# cd _data/
[root@iZbp10d5h2h0qbsabf055iZ _data]# ls
conf.d fastcgi_params koi-utf koi-win mime.types modules nginx.conf scgi_params uwsgi_params win-utf
[root@iZbp10d5h2h0qbsabf055iZ _data]# cat nginx.conf #查看这个配置文件user nginx;
worker_processes 1;error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;events {worker_connections 1024;
}http {include /etc/nginx/mime.types;default_type application/octet-stream;log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log /var/log/nginx/access.log main;sendfile on;#tcp_nopush on;keepalive_timeout 65;#gzip on;include /etc/nginx/conf.d/*.conf;
}
[root@iZbp10d5h2h0qbsabf055iZ _data]#
2.匿名挂载
以匿名的方式启动了一个容器,同样是挂载容器内容的/etc/nginx
目录
[root@iZbp10d5h2h0qbsabf055iZ _data]# docker run -d -P --name nginx03 -v /etc/nginx nginx
ade532db323816d8de574ca694fb4c493a9a84afbfc35f9ccc3c8323d2fc7d68
[root@iZbp10d5h2h0qbsabf055iZ _data]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ade532db3238 nginx "/docker-entrypoint.…" 8 seconds ago Up 7 seconds 0.0.0.0:49154->80/tcp nginx03
e056ecd764d8 nginx "/docker-entrypoint.…" 11 minutes ago Up 11 minutes 0.0.0.0:49153->80/tcp nginx02
[root@iZbp10d5h2h0qbsabf055iZ _data]#
因为是匿名挂载,那么卷的名字就是一串随机的字符串。
[root@iZbp10d5h2h0qbsabf055iZ _data]# docker volume ls
DRIVER VOLUME NAME
local d4eea76262dd14ccdf40faae90d916a98f2e97241c9faa463ed8e2e1c057eecd
local e8db426c1ca6978fabeaae31c88a9285a8ee009e2422ef36d2969bf243f8f09e
local f35392c7f10e8984efe460f77c0a9db1fc5a5aab995e674659f31c82a357bdbf
local juming-nginx
[root@iZbp10d5h2h0qbsabf055iZ _data]#
查看一下这个卷,docker inspect 卷名称
[root@iZbp10d5h2h0qbsabf055iZ _data]# docker inspect f35392c7f10e8984efe460f77c0a9db1fc5a5aab995e674659f31c82a357bdbf
[{"CreatedAt": "2021-02-23T19:06:52+08:00","Driver": "local","Labels": null,"Mountpoint": "/var/lib/docker/volumes/f35392c7f10e8984efe460f77c0a9db1fc5a5aab995e674659f31c82a357bdbf/_data","Name": "f35392c7f10e8984efe460f77c0a9db1fc5a5aab995e674659f31c82a357bdbf","Options": null,"Scope": "local"}
]
[root@iZbp10d5h2h0qbsabf055iZ _data]#
3.指定路径挂载
#-v 宿主机路径:容器内路径
[root@iZbp10d5h2h0qbsabf055iZ _data]# docker run -d -P --name nginx04 -v /test/a:/etc/nginx nginx
1d3a4675e6b55b39365bb723be684492e84a762a677f64ab9a6b0fe035b234f0
我们可以看到,nginx确实也启动了。
[root@iZbp10d5h2h0qbsabf055iZ _data]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1d3a4675e6b5 nginx "/docker-entrypoint.…" 3 minutes ago Exited (1) 3 minutes ago nginx04
ade532db3238 nginx "/docker-entrypoint.…" 8 minutes ago Up 8 minutes 0.0.0.0:49154->80/tcp nginx03
e056ecd764d8 nginx "/docker-entrypoint.…" 19 minutes ago Up 19 minutes 0.0.0.0:49153->80/tcp nginx02
去查看一下指定的目录。
[root@iZbp10d5h2h0qbsabf055iZ /]# cd test/
[root@iZbp10d5h2h0qbsabf055iZ test]# ls
a
[root@iZbp10d5h2h0qbsabf055iZ test]# cd a
[root@iZbp10d5h2h0qbsabf055iZ a]# l
-bash: l: command not found
[root@iZbp10d5h2h0qbsabf055iZ a]# ls
[root@iZbp10d5h2h0qbsabf055iZ a]#
4.扩展
ro代表read only ,它的意思是一旦使用了ro,那么就只能读,也就是容器内容只能读,不能写数据,而宿主机可以进行读写的操作。
#增加权限,-v 具名名称:容器内路径:容器权限
[root@iZbp10d5h2h0qbsabf055iZ a]# docker run -d -P --name nginx06 -v jumpming1-nginx:/etc/nginx:ro nginx
eb8582385154f0ee7be529b7b8fb175d3283f1782254b63b1816b694b0e21e1f
[root@iZbp10d5h2h0qbsabf055iZ a]#
rw代表可读可写,容器内部可以读也可以写,宿主机可以读也可以写。默认就是rw模式。
[root@iZbp10d5h2h0qbsabf055iZ a]# docker run -d -P --name nginx07 -v jumpming1-nginx:/etc/nginx:rw nginx
8197eed6941c349f50e8d054e62d36e342a861b6a5317e274514a94dfe87d004
[root@iZbp10d5h2h0qbsabf055iZ a]#
总结
- 具名挂载:
-v 具名名称:/容器内路径
- 匿名挂载:
-v /容器内路径
- 指定路径:
-v /宿主机路径:/容器内路径
一些命令
docker volume ls
查看所有的卷docker inspect
查看指定的卷
默认容器权限是rw可读可写模式,默认路径挂载目录为"/var/lib/docker/volumes/xxxxxx/_data"
docker笔记之具名挂载与匿名挂载相关推荐
- docker 的具名挂载与匿名挂载
大家好,今天我们分享一下docker 的具名挂载与匿名挂载 以这条命令举例 [root@localhost ~]# docker run -d -P --name nginx02 -v /etc/ng ...
- 【Docker】7、数据卷详解:具名挂载、匿名挂载、初识DockerFile、数据卷容器
1.什么是容器数据卷? docker的理念回顾 将应用和环境打包成一个镜像! 如果数据都在容器中,那么容器删除,数据就会丢失!需求:数据可以持久化.如:MySQL,容器删除了,MySQL数据可以存储在 ...
- 挂载(具名挂载、匿名挂载)
1.指定名称挂载 docker run -it -v /home/ceshi:/home centos /bin/bash 2.具名挂载(指定了一个名字):带/代表绝对路径开头 -v 卷名:容器内路径 ...
- docker具名挂载与匿名挂载
文章分为三部分: 什么是具名.匿名和指定路径挂载 匿名挂载 具名挂载 什么是具名.匿名和指定路径挂载 -v 容器内路径 #匿名挂载 -v 卷名 : 容器内路径 #具名挂载 -v 宿主机路径 : 容器内 ...
- docker 笔记一
docker 笔记一 docker 官网:https://www.docker.com/ docker概述 docker 出现的原因,解决了什么问题 在我们接触的传统项目开发中,项目或者说产品的一般拥 ...
- Docker笔记整理
文章目录 docker历史 docker能做什么 Docker的安装 Docker的基本组成 安装Docker 阿里云镜像加速 回顾Hello-World 底层原理 Docker的常用命令 帮助命令 ...
- 【狂神说docker笔记】 入门篇(手敲的 网络篇请移步视频)
Docker概述 Docker为什么出现? 一款产品∶ 开发–上线两套环境!应用环境,应用配置! 开发-运维.问题︰我在我的电脑上可以运行!版本更新,导致服务不可用!对于运维来说,考验就十分大?环境配 ...
- 狂神docker笔记1
docker概述 隔离:Docker核心思想!打包装箱!每个箱子相互隔离! Docker通过隔离机制,可以将服务器利用到极致! Docker历史: 2010年成立公司dotCloud 2013年开源 ...
- 狂神说docker笔记(一)
一.Docker概述 二.安装Docker 环境准备 linux基础 CentOS7 环境查看 #系统内核3.10以上 [root@localhost ~]# uname -r 3.10.0-957. ...
最新文章
- 【报告下载】想要评测 Kylin和Vertica的性能?这份基准测试白皮书已经替你做到了...
- 对html5的了解,HTML5——对HTML5的认识
- iOS之深入定制基于PLeakSniffer和MLeaksFinder的内存泄漏检测工具
- 共享单车当废铁卖 ofo回应:已达报废年限
- PyQt5 GUI Programming With Python 3.6 (一)
- IIS7 请求筛选模块被配置为拒绝超过请求内容长度的请求
- postman 配置统一的ip地址
- ext3转化为ext4
- 360安全卫士默认浏览器设置 360默认浏览器设置 锁定浏览器
- Parallel GC
- 华为路由器静态路由基本配置
- 激励的最佳状态,是让员工在最需要激励的时候,获得最大的心理满足
- 国产六大CPU:飞腾、鲲鹏、龙芯、海光、申威、兆芯
- coco数据集大小分类_COCO数据集使用
- 【打开方式问题解决】该文件没有与之关联的应用来执行该操作。请安装应用,若已经安装应用,请在“默认应用设置“页面中创建关联。
- 二阶线性微分方程解的结构(齐次与非齐次)+ 常数变易法 | 高阶微分方程(二)
- Matlab笔记(二):Matlab实现高斯函数的三维显示
- 收藏 | 100+篇大数据学习资讯,带你玩转大数据分析!
- 【大数据存储技术】第7章 MongoDB 的原理和使用
- git查看提交修改的文件列表