系列14 docker 数据管理 下

一.数据卷容器

  如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器。数据卷容器也是一个容器,但是它的目的是专门提供数据卷给其它容器挂载。

  首先创建一个数据卷容器dbdata,并在其中创建一个数据卷挂载到/dbdata:

[root@k8s-host opt]# docker run -it -v /dbdata  --name dbdata  ubuntu
root@9fbad9a78ac8:/# ls 
bin  boot  dbdata  dev  etc  home  lib  lib32  lib64  libx32  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@9fbad9a78ac8:/# cd dbdata
root@9fbad9a78ac8:/dbdata# 

  通过-v  将当前工作目录安装到容器中。 在容器中可以看到创建了一个dbdata文件夹。这个文件夹用来做多个容器之间的共享目录。

  注意:上篇中容器数据进行持久化, 数据文件是挂载映射在宿主本机目录,而这里是专门创建一个容器,用来进行数据持久化以及容器之间数据共享。

     这里创建容器是基于ubuntu镜像。

  文档:docker run -v

  然后其它容器中使用--volumes-from来挂载dbdata容器中的数据卷,例如创建db1和db2两个容器,并从dbdata容器挂载数据卷:

[root@k8s-host /]# docker run -it --volumes-from dbdata  --name db1  ubuntu
root@58a3f566c64d:/# cd dbdata
root@58a3f566c64d:/dbdata# exit
exit
[root@k8s-host /]# docker run -it --volumes-from dbdata  --name db2  ubuntu
root@fd7b5462fb65:/# cd dbdata
root@fd7b5462fb65:/dbdata# exit
exit

  上面db1和db2二个容器共享dbdata容器中的dbdata目录。在dbdata容器中创建一个test文件,在db1和db2容器中都能看到,如下所示:

  查看容器id, 容器退出了(是后台进程,待分析)

[root@k8s-host /]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS                     NAMES
fd7b5462fb65        ubuntu              "/bin/bash"              4 minutes ago       Exited (0) 3 minutes ago                              db2
58a3f566c64d        ubuntu              "/bin/bash"              4 minutes ago       Exited (0) 4 minutes ago                              db1
9fbad9a78ac8        ubuntu              "/bin/bash"              14 minutes ago      Exited (0) 13 minutes ago                             dbdata

  会话窗口A , 启动dbdata容器,创建一个test文件,如下所示:

[root@k8s-host /]# docker start 9fbad9a78ac8 
9fbad9a78ac8
[root@k8s-host /]# docker exec -it 9fbad9a78ac8 /bin/bash 
root@9fbad9a78ac8:/# cd /dbdata
root@9fbad9a78ac8:/dbdata# touch test
root@9fbad9a78ac8:/dbdata# ls
test
root@9fbad9a78ac8:/dbdata# 

  会话窗口B, 启动db2容器,可以查看到共享目录文件,如下所示:

[root@k8s-host ~]# docker start fd7b5462fb65
fd7b5462fb65
[root@k8s-host ~]# docker exec -it fd7b5462fb65  /bin/bash 
root@fd7b5462fb65:/# cd dbdata
root@fd7b5462fb65:/dbdata# ls
test
root@fd7b5462fb65:/dbdata# 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值