Docker入门之Docker数据卷

一 Docker数据卷管理

为什么要用数据卷

docker分层文件系统

性能差 生命周期与容器相同

docker数据卷

mount到主机中,绕开分层文件系统

和主机磁盘性能相同,容器删除后依然保留

仅限本地磁盘,不能随容器迁移

docker提供了两种卷:

bind mount

docker managed volume

bind mount 是将主机上的目录或文件mount到容器里。 使用直观高效,易于理解。

使用 -v 选项指定路径,格式 <host path>:<container path> 

[root@server1 ~]# docker run -d --name demo -v /data:/usr/share/nginx/html nginx
5f4f5115e55ff33fca5dfe4de09efd7dc32b7b17437c9e2ae39165014054b3fa
[root@server1 ~]# echo www.westos.org > /data/index.html
[root@server1 ~]# curl 172.17.0.2
www.westos.org
[root@server1 ~]# docker exec -it demo bash
root@5f4f5115e55f:/# ls
bin   docker-entrypoint.d   home   media  proc	sbin  tmp
boot  docker-entrypoint.sh  lib    mnt	  root	srv   usr
dev   etc		    lib64  opt	  run	sys   var

bind mount 默认权限是读写rw,可以在挂载时指定只读ro。 -v选项指定的路径,如果不存在,挂载时会自动创建

[root@server1 ~]# docker run -it --rm -v /etc/yum.repos.d/dvd.repo:/etc/yum.repo.d/dvd.repo:ro rhel7 bash
bash-4.2# cd /etc/yum.repo.d/
bash-4.2# cat dvd.repo 
[dvd]
name=dvd
baseurl=http://172.25.7.250/rhel7.6
gpgcheck=0

[docker]
name=docker
baseurl=http://172.25.7.250/docker-ce
gpgcheck=0

bash-4.2# exit

 

 

docker managed volume bind mount必须指定host文件系统路径,限制了移植性。 docker managed volume 不需要指定mount源,docker自动为容器创建数据卷目录。 默认创建的数据卷目录都在 /var/lib/docker/volumes 中。 如果挂载时指向容器内已有的目录,原有数据会被复制到volume中。

 bind mount与docker managed volume对比

相同点:两者都是 host 文件系统中的某个路径。

不同点:

 

二 卷插件简介

docker 卷默认使用的是local类型的驱动,只能存在宿主机,跨主机的volume就需要使用第三方的驱动

docker官方只提供了卷插件的api,开发者可以根据实际需求定制卷插件驱动。

 

Docker Plugin 是以Web Service的服务运行在每一台Docker Host上的,通过HTTP协议传输RPC风格的JSON数据完成通信。

Plugin的启动和停止,并不归Docker管理,Docker Daemon依靠在缺省路径下查找Unix Socket文件,自动发现可用的插件。

当客户

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值