docker容器数据卷
Docker挂载主机目录如果出现cannot open directory .: Permission denied
解决办法:在挂载目录后多加一个**–privileged=true**参数即可
将容器内的数据备份和持久化到宿主机目录,防止删除容器后数据消失。
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名 /bin/bash
注:可以挂载多个,即多个 [-v /宿主机绝对路径目录:/容器内目录]
宿主机绝对路径目录:/容器内目录
- 数据卷可在容器之间共享或重用数据 【即使容器停止运行后,宿主机目录有更新,容器启动后,也会同步更新】
- 卷中的更改可以直接实时生效
- 数据卷中的更改不会包含在镜像的更新中
- 数据卷的生命周期一直持续到没有容器使用它为止
读写规则和映射添加说明
- 读写(默认)
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:rw 镜像名 /bin/bash
- 只读(read only)
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:ro 镜像名 /bin/bash
此时,容器目录中不可以做修改,宿主机可以
卷的继承和共享
容器2继承容器1的卷规则
docker run -it --privileged=true --volumes-from 父类[容器1] 容器2名
容器2和容器1数据共享,容器1挂,容器2更改,容器1活后会同步,反之亦然,宿主机修改,也会同步。