导读 | 用户在使用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目录并且里面数据一样。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/122851.html