docker(4)--docker数据卷

一、数据卷管理

为什么要用数据卷

  • docker分层文件系统
    性能差
    生命周期与容器相同
  • docker数据卷
    mount到主机中,绕开文件分层系统
    和主机磁盘性能相同,容器删除后依然保留
    仅限本地磁盘,不能随容器迁移

docker提供了两种卷:

  1. bind mount
  2. docker managed volume

1.bind mount方式

  • 是将主机上的目录或文件mount到容器里
  • 使用直观高效,易于理解
  • 使用 -v 选项指定路径,格式<host path>:<container path>
[root@server1 ~]# mkdir website
[root@server1 ~]# cd website/
[root@server1 website]# echo www.westos.org > index.html
[root@server1 website]# cd ..
[root@server1 ~]# docker run -d --name demo -v /root/website:/usr/share/nginx/html nginx  ##挂接到nginx的默认发布目录
[root@server1 ~]# docker inspect demo    ##查看ip
[root@server1 ~]# curl 172.17.0.2
www.westos.org

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

[root@server1 ~]# docker run --rm -it -v /data1:/data1 -v /data2:/data2:ro -v /etc/yum.repos.d/dvd.repo:/dvd.repo:ro busybox
/ # cd /data1/
/data1 # touch file
/data1 # ls
file   file1
/ # cd /data2/
/data2 # touch file
touch: file: Read-only file system
/data2 # cd ..
/ # cat dvd.repo 
[dvd]
name=rhel7.6
baseurl=http://172.25.70.250/rhel7.6
gpgcheck=0
/ # rm -rf dvd.repo 
rm: can't remove 'dvd.repo': Device or resource busy
/ # 

docker managed volume

docker managed volume

  • bind mount必须指定host文件系统路径,限制了移植性。
  • docker managed volume不需要指定mount源,docker 自动为容器创建数据卷目录。
  • 默认创建的数据卷目录都在/var/lib/docker/volumes中。
  • 如果挂载时指向容器内已有的目录,原有数据会被复制到volume中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值