Docker之数据卷容器——一看就懂


docker持久化有2种方式:
一个是常见的数据卷,可以在容器和宿主机之间共享一个目录。
二是使用数据卷容器的方式。

1、数据卷

数据卷的方式非常的简单,直接使用run 命令的时候使用-v 指定目录即可。

docker run -it -p 8888:8080 --name qsmtomcat2 -v /local/tomcat/webapps/ /usr/local/tomcat/webapps tomcat镜像id
2、数据卷容器
2.1、创建并使用

1.下载busybox

[root@localhost ~]# docker pull busybox
Using default tag: latest
Trying to pull repository docker.io/library/busybox ...
latest: Pulling from docker.io/library/busybox
91f30d776fb2: Pull complete
Digest: sha256:9ddee63a712cea977267342e8750ecbc60d3aab25f04ceacfa795e6fce341793
Status: Downloaded newer image for docker.io/busybox:latest

2.创建数据卷容器和业务容器

[root@localhost ~]# docker run -id -v /qsm --name qsmvolume c7c37e472d31
7aeee175fdebbd22f5c55b57ce92aa6be53f2651f8555e2de7822798e834736c
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
7aeee175fdeb        c7c37e472d31        "sh"                     6 seconds ago       Up 5 seconds                             qsmvolume
6fb12b96a4a5        2622e6cca7eb        "/docker-entrypoin..."   4 weeks ago         Up 20 hours         0.0.0.0:80->80/tcp   mynginx
[root@localhost ~]# docker run -id --volumes-from qsmvolume --name qsmbusybox1 c7c37e472d31
8a5e4be88132361e52d133cf7b32f2544d812c8b5c7e7f357c63f1dd451a2a13

3.创建数据进行共享、持久化

[root@localhost ~]# docker exec -it 7aeee175fdeb sh
/ # ls
bin   dev   etc   home  proc  qsm   root  run   sys   tmp   usr   var
/ # cd /qsm/
/qsm # touch qsmtestfile.txt
/qsm # ls
qsmtestfile.txt
/qsm # vi qsmtestfile.txt
/qsm # cat qsmtestfile.txt
nihao qsm
/qsm # exit

[root@localhost ~]# docker exec -it 8a5e4be88132 sh
/ # ls
bin   dev   etc   home  proc  qsm   root  run   sys   tmp   usr   var
/ # cd /qsm/
/qsm # ls
qsmtestfile.txt
/qsm # cat qsmtestfile.txt
nihao qsm
2.2、未运行的数据卷容器是是否可以继续使用

先说结论:可以。
验证如下:1.先停掉数据卷容器qsmvolume 。2,在启动一个业务容器qsmbusybox2。查看/qsm/qsmtestfile.txt是否存在。

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
8a5e4be88132        c7c37e472d31        "sh"                     15 minutes ago      Up 15 minutes                            qsmbusybox1
7aeee175fdeb        c7c37e472d31        "sh"                     17 minutes ago      Up 17 minutes                            qsmvolume
6fb12b96a4a5        2622e6cca7eb        "/docker-entrypoin..."   4 weeks ago         Up 20 hours         0.0.0.0:80->80/tcp   mynginx
[root@localhost ~]# docker stop 7aeee175fdeb
7aeee175fdeb
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                        PORTS                NAMES
8a5e4be88132        c7c37e472d31        "sh"                     16 minutes ago      Up 16 minutes                                      qsmbusybox1
7aeee175fdeb        c7c37e472d31        "sh"                     18 minutes ago      Exited (137) 14 seconds ago                        qsmvolume
6fb12b96a4a5        2622e6cca7eb        "/docker-entrypoin..."   4 weeks ago         Up 20 hours                   0.0.0.0:80->80/tcp   mynginx
ec5d54d140fb        2622e6cca7eb        "/docker-entrypoin..."   4 weeks ago         Exited (0) 4 weeks ago                             qsmnginx
[root@localhost ~]# docker run -id --volumes-from qsmvolume --name qsmbusybox2 c7c37e472d31
5cf0da32f26f3c13b2f758acf6455b501d82da35b9de262da3c28a5f88ce8e4d
[root@localhost ~]# docker exec -it 5cf0da32 sh
/ # cat /qsm/qsmtestfile.txt
nihao qsm
2.2、是否可以挂载多个数据卷容器

答案:可以。
读者按照上面的命令可以自行验证。

2.3、若多个数据卷容器的共享目录相同,会发生什么。

答案:只有最后一个–volumes-from制定的数据卷容器会挂载成功。
读者按照上面的命令可以自行验证。

2.4、是否可以级联挂载。

答案:可以。
验证方法可以使用已经创建的业务容器qsmbusybox1作为数据卷容器–volumes-from进行验证。

[root@localhost ~]# docker run -id --volumes-from qsmbusybox1 --name qsmbusybox5 c7c37e472d31
0ebe1f18cf6e621b12ff1488cc5e5d6a23bc0bfcb29c2d3f3b5a7ea95bf06815
[root@localhost ~]# docker run -it --volumes-from qsmbusybox1 --name qsmbusybox6 c7c37e472d31
/ # cat /qsm/qsmtestfile.txt
nihao qsm

【完】






本笔记为小知识点

若查看系统学习docker,请移步指docker基础版笔记




【正在去BAT的路上修行!!!】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值