docker3-容器数据卷
1,什么是容器数据卷
-
如果运行过程中的数据都保存在容器中,那么一但删除容器数据就会丢失,因此需要容器数据持久化;此外,容器之间也有数据共享的需求。
-
容器数据卷技术的功能是将Docker容器中产生的数据同步到本地,本质是将容器内的目录挂载到宿主机上(目录的挂载,容器内的目录与宿主机的目录相绑定;绑定是双向的,容器发生变化宿主机随之变化,宿主机发生变化容器也会随之变化。)
-
好处:
- 数据备份
- 容器之间数据共享
- 挂在后修改文件只需本地修改,容器内自动同步
2,数据卷的使用
-
使用命令挂载
docker run -it -v 主机目录:容器目录 和-p类似 是否成功可以通过 docker inspect 中的Mounts查看 一个例子: docker run -it -v /home/ceshi:/home centos /bin/bash
-
具名和匿名挂载
匿名挂载 docker run -v 容器目录 不指定名字就直接是容器内的目录 docker volume ls 查看所有卷的名称 docker volume insepct 卷的名称 查看卷的具体信息(其中Mountpoint就是卷的挂载位置) (如果要看容器的挂在情况,docker inspect 容器id 看 Mounts) 具名挂载(常用) docker run -v 名称:容器目录 为容器内目录指定名称(名称不加/,与主机目录不同) 我的服务器上,匿名和具名卷都挂载 在/var/lib/docker/volumes(不指定主机目录都在这) 指定路径挂载 docker run -v /主机路径:容器目录 指定容器在主机的挂在路径(主机路径以/开头)
-
ro/rw 改变读写权限:一旦设置了权限,容器对挂载出来的内容就有限定了
ro:read only 只读,该路径只能通过宿主机操作,容器内无法操作 rw:read write 读写(默认),容器对宿主机上的该路径可操作 例子 docker run -d -P --name nginx03 -v juming-nginx:/etc/nginx:ro nginx
-
多个容器数据同步(数据卷容器)
docker run --volumes-from 容器id 镜像
概念
本质
行动是治愈恐惧的良药,而犹豫拖延将不断滋养恐惧。