目录
volumes介绍
数据卷的作用是:当容器挂掉时,数据卷实际目录是放在宿主机上的,数据不会丢失,再启一个新的容器,也不影响数据,只要数据卷还在
查看数据卷
docker volume ls
创建数据卷
docker volume create nginx_vol
查看数据卷详情
docker volume inspect nginx_vol
用数据卷创建容器
docker run -d --name=nginx03 -p 88:80 --mount src=nginx_vol,dst=/usr/share/nginx/html/ nginx
使用 --mount 这个问题报错:
unknown flag: --mount
解决方案:使用-v 或者使用17.06以上的版本
docker run -d --name=nginx03 -p 88:80 -v nginx_vol:/usr/share/nginx/html/ nginx
看下容器nginx03宿主的目录
ls /var/lib/docker/volumes/nginx_vol/_data
修改/var/lib/docker/volumes/nginx_vol/_data目录下的index.html文件
证明/var/lib/docker/volumes/nginx_vol/_data目录下的文件与nginx03容器是共享的
docker inspect nginx03 //查看详情,获取内部IP
先暂停nginx03容器,创建nginx04容器
发现数据还是没丢失
有同学会问,那如果把这两个容器删除了,数据卷的文件还在吗?
答案是在的,因为数据卷是独立于容器之外的
注:如果把数据卷删除了,数据文件就不存在了
小结
volume特点:
- 多个运行容器之间共享数据
- 当容器停止或被移除时,该数据卷还存在
- 多个容器可以同时挂载相同的卷
- 当删除卷时,卷下的数据才会被删除
- 将容器的数据存储在远程主机或者其他存储上
- 将数据从一台docker主机迁移到另一台时,先停止容器,然后备份卷的目录(/var/lib/docker/volumes/)