centos7下安装docker(13.4容器volume总结)
最近我们学习了docker 存储,首先docker存储有两种:storage driver和data volume。
storage driver是由镜像层和容器层组成的,可以通过docker inspect <容器ID>来查看容器默认使用的driver
data volume又分为两种bind mount 和docker managed volume
bind mount:通过容器运行时指定固定的bind mount,例如:docker run -d -v /test:/var/lib/test busybox
docker managed volume:是在容器启动的时候会在host的/var/lib/docker/volume/***/_data自动创建一个bind mount并将容器中相应的内容复制一份到/var/lib/docker/volume/***/_data下
还学习了容器的共享:
容器与host之间的共享:bind mount,docker managed volume
容器与容器之间的共享:bind mount,containers volume,data-packed volume container三种方式
container volumes:docker create一个容器专门用来挂载,这个容器可以是create的状态,其他容器通过--volumes-from 来挂载这个容器
data-packed volume container:是通过创建挂载的镜像,这种方式移植性特别强,但是无法动态修改共享文件。
docker volume生命周期的管理
备份:直接备份host上的相应的文件
恢复:将备份的文件复制到相应的位置
迁移:运行容器挂载相同的bind mount
销毁:docker rm -v通过-v的参数删除docker managed volume创建的目录;通过docker volume ls查看host有哪些volume,docker rm volume删除;对于孤儿volume,可以通过docker volume prune删除
本章的docker 命令总结;
docker run -d -v /test1:/var/lib/docker:ro httpd ro:只读文件
docker volume inspect :查看容器volume信息
docker volume rm 删除volume
docker volume prune删除孤儿volume
docker volume rm $(docker volume ls -q)批量删除volume
docker cp将host上面的内容复制到容器中