Docker容器数据卷
容器数据卷
docker run -it -v 主机目录:容器内目录 镜像名
查看挂载信息:docker inspect 容器id
实战:安装启动MySQL
docker run -d -p 3310:3306 -v C:\Users\wzj\Desktop\home\mysql\conf:/etc/mysql/conf.d -v C:\Users\wzj\Desktop\home\mysql\data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
具名和匿名挂载
匿名挂载 -v 容器内路径 docker run -d -P -v /etc/nginx nginx 查看所有的卷情况 docker volnme ls C:\Users\wzj\Desktop\home\mysql>docker volume ls DRIVER VOLUME NAME local 61afaff77a068085a94905609ed412f68cd39bd5c85bd97018a3f577f5774704 local 071e9de3c911bcca6385aaa6c8c1052ca59e922a6d5f70ff05c4c301cc05a631 具名挂载 -v 卷名:容器内路径 C:\Users\wzj\Desktop\home\mysql>docker volume ls DRIVER VOLUME NAME local juming
所有docker容器内的卷,在没有指定目录的情况下都是在:/var/lib/docker/volumes/卷名/_data
扩展
如何确定是具名挂载还是匿名挂载还是指定路径挂载
-v 容器内路径 匿名挂载 -v 卷名:容器内路径 具名挂载 -v 宿主机路径:容器内路径 指定路径挂载
通过-v 容器内路径:ro/rw 改变读写权限
ro表示这个路径只能通过宿主机来操作,容器内无法操作
数据卷容器
多个容器实现数据共享:A容器挂载B容器,B容器称为父容器,也称为数据卷容器(备份机制:只要有一个容器还存在,数据就存在)
docker run -it --name docker2 --volumes-from docker1 wzj/centos:v1
Fake it,till you make it