docker入门--数据卷

一、bind mount

  • 将宿主机上的目录或文件挂载到容器中
  • 宿主机目录的内容会覆盖容器目录
  • 可以给目录附权限,默认rw可读可写。格式:ro只读
  • 使用-v选项指定目录
  • 格式:<host path>:<container path>

实例:将容器的/opt目录挂在到宿主机的/data/centos目录下

docker run -d -v /data/centos:/opt/  centos /bin/bash

实例:将容器的/opt目录挂在到宿主机的/data/centos目录下,默认容器对该目录只读权限

docker run -d -v /data/centos:/opt/:ro  centos /bin/bash

实例:将宿主机的yum源文件映射到容器中,设置容器只读权限

docker run -d -v /etc/yum.repos.d/CentOS7.repo:/etc/yum.repos.d/CentOS7.repo:ro centos /bin/bash

二、docker managed volume

  • docker自动为容器创建数据卷目录
  • 创建的路径在${docker_home}/volume中,yum安装的在/var/lib/docker/volumes目录下
  • 会将容器内的目录内容挂在出来,不会被覆盖
  • 可多个容器挂载同一个managed volume
  • docker volume prune删除所有没有被容器使用的卷
  • 格式 -v 宿主机目录名:容器目录名

实例:将容器的/var/lib/mysql目录挂载在data_mysql目录中

docker run -d -v data_mysql:/var/lib/mysql centos /bin/bash

三、数据卷共享 --volumes-from

实例:创建一个centos2容器,共享centos1的volume。

docker run -d --volumes-from centos1 --name centos2 centos /bin/bash

四、bind mount对比docker managed volume

bind mountdocker managed volume
volume位置任意指定默认/var/lib/docker/volume目录中
对已有mount point影响隐藏并替换为volume原有数据复制到volume
支持单个文件
权限控制默认读写,可设置只读无控制,均为读写
移植性移植性弱,与主机路径绑定移植性强,无需指定主机目录
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值