Docker数据管理
1、挂载本地的目录到容器里
# docker run -itd -v /data/:/data1/ centos bash //-v用来指定挂载的目录,/data/为本地目录,:/data1/为容器里的目录
2、挂载数据卷
挂载目录的时候,可以指定容器的name,如果不指定就随机定义了,比如上面我们没有指定,他就生成了一个名字为angry_ritchie的容器,这个名字可以用用docker ps看到,最右侧一列就是
# docker run -itd --volumes-from angry_ritchie(容器的名字) centos bash
这样,使用centos镜像创建了新容器,并且使用了angry_ritchie容器的数据卷
3、定义数据卷容器
有时候,我们需要多个容器之间共享数据,类似于linux里面的NFS,所以就可以搭建一个专门的数据卷容器,然后其他容器直接过载该数据卷:
建立数据卷容器
# docker run -itd -v /data/ --name fansik centos bash //注意这里的/data/是容器的/data目录,并非本地的/data/目录
然后让其他容器挂载该数据卷
# docker run -itd --volumes-from fansik --name=zhangsan centos bash
fansik容器就相当于NFS服务器,所有的数据都存储在fansik镜像上(所以fansik不能随意停止重启等)
4、数据卷的备份
在跟下创建备份目录backup:
# mkdir backup
使用fansik创建容器并把backup目录挂载到容器中
# docker run -itd --volumes-from fansik -v /backup/:/backup/ centos bash
进入容器会看到根目录下有个backup目录还有data目录
# docker exec -it 5a4 bash
将data目录打包,然后放到backup目录下,这样就可以在宿主机的backup里面看到我们备份的data数据了
# tar cvf /backup/data.tar data
5、数据卷的恢复
本人恢复前已经把其他容器全部删除掉了,只是还想用以前容器名字
先创建一个数据卷容器,再建一个新的容器并挂载该数据卷容器,然后再把tar包解包
新建数据卷容器:
# docker run -itd -v /data --name fansik centos bash
挂载数据卷新建容器,并解包:
# docker run --volumes-from fansik -v /backup/:/backup centos tar xvf /backup/data.tar
这条命令执行后就会退出