docker目录挂载

  • 目录挂载(容器数据卷操作)
    我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而影响容器,而且这个操作是双向绑定的,也就是说容器内的操作也会影响到宿主机,实现备份功能。
    但是容器被删除的时候,宿主机的内容并不会被删除。如果多个容器挂载同一个目录,其中一个容器被删除,其他容器的内容页不会受到影响
    容器与宿主机之间的数据卷属于引用的关系,数据卷是从外界挂载到容器内部中的,所以可以脱离容器的生命周期而独立存在,正是由于数据卷的生命周期并不等同于容器的生命周期,在容器退出或者删除以后,数据卷仍然不会受到影响,数据卷的生命周期会一直持续到没有容器使用它为止
    创建容器添加 -v参数,格式为 宿主机:容器目录,例如
docker run -di -v /mydata/docker_centos/data:/usr/local/data --name centos7-01 centos:7
#多目录挂载
docker run -di -v /宿主机目录:/容器目录 -v/宿主机目录2:/容器目录 镜像名
目录挂载操作可能会出现权限不足的提示。这是因为centos7中的安全模块SELinux把权限禁掉了,在docker run时通过-privileged=true给该容器加权限来解决挂载的目录没有权限的问题
  • 匿名挂载
    匿名挂载只需要写容器目录即可,容器外对应的目录会在/var/lib/docker/volumes中生成
#匿名挂载
docker run -di -v /usr/local/data --name centos7-02 centos:7
#查看 volume数据卷信息
docker volume ls
  • 具名挂载
docker run -di -v docker_nginx_data:/usr/local/data --name nginx06 nginx  //docker_nginx_data为具体的名字
  • 只读(只允许宿主机更改,容器为只读)
docker run -di --name nginx07 -P -v /mydata/docer_nginx/:/abc:ro nginx
  • 读写模式
docker run -di --name nginx08 -P -v /mydata/docker_nginx/:/abc:rw nginx
  • volumes-from(继承)
docker run -di -v /mydata/docker_centos/data:/usr/local/data --name centos7-01 centos:7
#容器centos7-04 和centos7-05相当于继承centos7-01容器挂载的目录
docker run -di --volumes-from centos7-01 --name centos7-04 centos:7
docker run -di --volumes-from centos7-01 --name centos7-05 centos:7
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值