容器数据卷
打通容器与宿主机的一个操作
总结一句话:容器的持久化和同步操作,容器间也可以数据共享
使用数据卷
方式一:直接使用命令来挂载 -v docker run -it -v 主机目录:容器内目录 -p 测试同步: 可以在挂载好的文件放上文件试试看下效果
首先得有目标目录
比如需要把容器/home的内容映射到主机/home/xxx
需要新建mkdir xxx(这是创建目录)
通过docker inspect 容器id
发现mounts里有挂载内容
source 为主机内地址
Destination 为docker容器内地址
好处:我们以后秩序修改本地,容器内会自动同步
实战:Mysql的持久化问题
#启动mysql docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -eMYSQL_ROOT_PASSWORD=密码 mysql:tag版本
通过msyqlyon 建立相应的链接并生成相应的数据库来测试效果
术语名词:
具名与匿名挂载
#匿名挂载 -v 容器内陆星 docker run -d -P --name nginx01 -v /etc/nginx nginx # volumes(卷):存储持久化数据用 docker volume COMMAND 查看用法类似--help docker volume ls 查看卷情况 ##分两种 没用名字属于匿名挂在 docker run -d -P --name nginx02 -v wodenginx:/etc/nginx nginx ##通过 inspect命令找到相应目录 docker volume inspect wodenginx ##所有未指定挂载名录的都在/var/lib/docker/volumes之内 ##如何区分几种挂载 -v 容器内路径 #匿名挂载 -v 卷名:容器内路径 #具名挂载 -v /宿主机路径:容器内路径 #指定路径挂载 ##拓展 docker run -d -P --name nginx02 -v /etc/nginx:ro nginx docker run -d -P --name nginx02 -v /etc/nginx:rw nginx ##ro read only 只能通过外部(宿主机)改 ##rw read write #关于权限问题