在docker学习中,明白了容器是单独隔离的,但是可能我们要对容器进行备份,特别是数据类的,这点怎么办呢?
例如:目前有一个tomcat1,我们需要对这个tomcat1进行数据备份
方案:
1、先明白这个tomcat1的容器是由哪一个镜像生成
2、直接用这个镜像再次生成一个tomcat容器,并指定tomcat1进行挂载
如此我们就可以进行对tomcat1进行备份了,即使tomcat1被干掉了,但是数据仍然存在
tomcat1
[root@localhost test]# docker run --name="centos1" -it -v /home/test centos:7 /bin/bash # 构建tomcat1容器,假设数据都放在/home/test下面,所以我们直接采用匿名挂载方式对这个目录进行挂载 [root@4a9cabfafe93 /]# ls anaconda-post.log etc lib64 opt run sys var bin home media proc sbin tmp dev lib mnt root srv usr [root@4a9cabfafe93 /]# cd /home/ [root@4a9cabfafe93 home]# ll total 0 drwxr-xr-x. 2 root root 6 Apr 30 02:11 test
tomcat2
[root@localhost ~]# docker run -it --name=centos2 --volumes-from centos1 centos:7 # 使用 run下面的--volumes-from 参数指定容器进行挂载 [root@a4a18c56d34c /]# cd /home/ [root@a4a18c56d34c home]# ll total 0 drwxr-xr-x. 2 root root 6 Apr 30 02:11 test [root@a4a18c56d34c home]# cd test/ [root@a4a18c56d34c test]# ll total 0 [root@a4a18c56d34c test]# mkdir a # 在test中新建一个a目录
测试下,在tomcat2中新建目录后数据是否同步到tomcat1中(由于挂载之后这里其实是双向同步的,所以只用测试一下即可)