良许Linux教程网 干货合集 浅谈Docker数据卷

浅谈Docker数据卷

在生产环境中使用 Docker,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作容器中的管理数据主要有两种方式:数据卷 Data Volumes 容器内数据直接映射到本地主机环境,数据卷容器(Data Volume Containers 使用特定容器维护数据卷,本篇文章重点讲解一下Docker数据卷。

docker技术篇-数据卷管理docker技术篇-数据卷管理

数据卷

数据卷是一个可供容器使用的特殊目录,使用类似于linux对目录或者文件进行操作。

数据卷可以在容器之间共享
对数据卷的修改会马上生效
对数据卷的更新,不会影响镜像
卷会一直存在,直到没有容器使用

在用docker run 命令的时候,可使用-v参数来标记可以在容器。可以多次使用-v 参数创建多个数据卷。下面我使用chao镜像创建一个aaa容器,并创建一个数据卷挂载到容器的/chao目录:

[root@localhost ~]# docker run -d -it -P --name aaa -v /chao chao
6bda302f62f636281499e5e08d76353b934b3af1132ef85189bdfb35b729d96c
[root@localhost ~]# docker attach aaa
[root@6bda302f62f6 /]# ls
bin  chao  dev etc  home  lib lib64  lost+found  media  mnt  opt  proc  root run  sbin  srv sys  tmp  usr  var

例如我们要把本机的chaols目录分享到容器的/chao目录下

[root@localhost ~]# mkdir chaols
[root@localhost ~]# cd chaols/
[root@localhost chaols]# touch a b c
[root@localhost chaols]# cd
[root@localhost ~]# docker run -v /root/chaols:/chao -it chao
[root@4c214961267f /]# ls
bin  chao  dev etc  home  lib lib64  lost+found  media  mnt  opt  proc  root run  sbin  srv sys  tmp  usr  var
[root@4c214961267f /]# ls /chao/
a  b  c

数据卷容器

用户如果需要在容器之间共享一些数据,此时就可以用数据卷容器,数据卷容器就是一个普通容器,就是用它来存放共享的数据。 现在我们创建chao1 chao2 在aaa容器中挂载

[root@localhost ~]# docker run -it --volumes-from aaa --name chao1 chao
[root@b26d0044b084 /]# ls
bin  chao  dev etc  home  lib lib64  lost+found  media  mnt  opt  proc  root run  sbin  srv sys  tmp  usr  var
[root@b26d0044b084 /]# cd chao/
[root@b26d0044b084 chao]# ls
[root@b26d0044b084 chao]# cd ..
[root@b26d0044b084 /]# [root@localhost ~]#
[root@localhost ~]# docker run -it --volumes-from aaa --name chao2 chao
[root@a8ade4de8d12 /]# ls
bin  chao  dev etc  home  lib lib64  lost+found  media  mnt  opt  proc  root run  sbin  srv sys  tmp  usr  var
[root@a8ade4de8d12 /]# cd chao/
[root@a8ade4de8d12 chao]# ls
[root@a8ade4de8d12 chao]# mkdir aaa
[root@a8ade4de8d12 chao]# [root@localhost ~]#
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
a8ade4de8d12        chao                "/bin/bash"         17 seconds ago      Up 16 seconds                           chao2
b26d0044b084        chao                "/bin/bash"         44 seconds ago      Up 42 seconds                           chao1
4c214961267f        chao                "/bin/bash"         7 minutes ago       Up 7 minutes                            serene_bose
d1d444fb5fa4        chao                "/bin/bash"         9 minutes ago       Created                                 zealous_jones
286446231b22        chao                "/bin/bash"         10 minutes ago      Created                                 fervent_shirley
6bda302f62f6        chao                "/bin/bash"         14 minutes ago      Up 14 minutes                           aaa
[root@localhost ~]# docker attach a8ade4de8d12
[root@a8ade4de8d12 chao]# ls
aaa
[root@a8ade4de8d12 chao]# [root@localhost ~]#
[root@localhost ~]# docker attach b26d0044b084
[root@b26d0044b084 /]# ls
bin  chao  dev etc  home  lib lib64  lost+found  media  mnt  opt  proc  root run  sbin  srv sys  tmp  usr  var
[root@b26d0044b084 /]# ls /chao/
aaa

由此可见他们都有chao目录并且里面数据一样。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

img
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部