六、Docker 容器数据卷

有时候,不是因为你没有能力,也不是因为你缺少勇气,只是因为你付出的努力还太少,所以,成功便不会走向你。而你所需要做的,就是坚定你的梦想,你的目标,你的未来,然后以不达目的誓不罢休的那股劲,去付出你的努力,成功就会慢慢向你靠近。

导读:本篇文章讲解 六、Docker 容器数据卷,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

1、容器数据卷是什么

        在我们学习docker命令的时候,有一个命令:”docker rm -f 容器ID“  这个命令,假如我们现在有一个mysql容器,mysql中已经存储了1千万数据,某一个开发/运维手欠,不小心执行了 docker rm -f mysql 命令,这个时候容器是不是就没有了,并且里面的数据也被干掉了。

为了解决这个问题,就有了容器数据卷的出现,将docker容器内的数据保存进宿主机的磁盘中。

1.1、命令、注意点

命令: docker run -it –privileged=true -v /宿主机绝对路径目录:/容器内目录      镜像名

其中”-v /宿主机绝对路径目录:/容器内目录 “ 就是属于容器卷范畴

注意点:在增加容器卷的时候必须加上”–privileged=true“,否则会出现问题

Docker挂载主机目录访问如果出现cannot open directory .: Permission denied

解决办法:在挂载目录后多加一个–privileged=true参数即可  如果是CentOS7安全模块会比之前系统版本加强,不安全的会先禁止,所以目录挂载的情况被默认为不安全的行为,在SELinux里面挂载目录被禁止掉了额,如果要开启,我们一般使用–privileged=true命令,扩大容器的权限解决挂载目录没有权限的问题,也即使用该参数,container内的root拥有真正的root权限,否则,container内的root只是外部的一个普通用户权限。

2、容器数据卷能干什么

        将运用与运行的环境打包镜像,run后形成容器实例运行 ,但是我们对数据的要求希望是持久化的 Docker容器产生的数据,如果不备份,那么当容器实例删除后,容器内的数据自然也就没有了。为了能保存数据在docker中我们使用容器卷。

2.1、特点

  • 数据卷可在容器之间共享重用数据
  • 卷中的更改可以直接实时生效
  • 数据卷中的更改不会包含在镜像的更新中
  • 数据卷的生命周期一直持续到没有容器使用它为止 

3、数据卷案例

3.1、宿主vs容器之间映射添加容器卷

命令:docker run -it –privileged=true -v /usr/local/tool/volumn:/tmp/files  centos:7 /bin/bash

以交互方式启动centos 镜像,并且将宿主机 /usr/local/tool/volumn 挂载到 容器/tmp/files 目录上

执行后,宿主机和容器将自动创建相应的文件夹(如果不存在)

六、Docker 容器数据卷

咱们也可以通过  docker inspect 容器ID 命令查看挂载是否成功

六、Docker 容器数据卷 

3.2 、读写规则映射添加

容器卷挂载可以设置 容器内门读写规则,在3.1中,在容器内可以创建2.txt 说明容器内是可以写入的(默认读写都可以)

读写命令:docker run -it –privileged=true -v /usr/local/tool/volumn:/tmp/files  centos:7 /bin/bash

等同于  docker run -it –privileged=true -v /usr/local/tool/volumn:/tmp/files:rw  centos:7 /bin/bash

只读命令:docker run -it –privileged=true -v /usr/local/tool/volumn:/tmp/files:ro centos:7 /bin/bash

只读实例:

六、Docker 容器数据卷

3.3、卷的继承和共享 

有的时候我们希望多个容器挂载的 宿主继目录和容器目录一致,则可以先创建一个容器,其他容器继承这个容器的 挂载

命令:docker run -it  –privileged=true –volumes-from 父类容器  –name centos2 centos:7 /bin/bash

实例:

六、Docker 容器数据卷

注意: centos2继承centos1 ,centos1关闭,不影响cengtos2的容器卷

3.4、多容器卷挂载

命令:

docker run -it –privileged=true -v /usr/local/tool/volumn:/tmp/files -v /usr/local/tool/volumn2:/tmp/files2  centos:7 /bin/bash

同单容器卷挂载效果

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/144709.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!