使用数据卷
方式一:直接命令挂载 -v# docker run -it -v 主机目录:容器内目录
docker run -it -v /home/test:/home centos /bin/bashdocker inspect 容器id #查看容器信息
修该容器内的目录,主机对应的目录也会修改,相反修改主机的挂载目录文件,容器内也是会修改。即使容器没有启动也是如此。这样方便启动容器,把配置文件挂载在外面,进行修改。不用再进容器里面修改配置文件。
实战:挂载MYSQLdocker run -d -p 3310:3306 -v /home/mysql01/conf:/etc/mysql/conf.d -v /home/mysql01/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=Xl5680429 --name mysql01 mysql:8.0;
#说明
-d 后台运行
-p 映射端口(主机端口:容器端口)
-v 数据卷挂载文件:第一个是挂载配置文件,第二个是挂载数据文件
-e 环境配置,配置密码
--name 容器名字
具名和匿名挂载#匿名挂载
docker run -d -P --name nginx01 -v /etc/nginx nginx;
#具名挂载 docker run -d -P --name nginx01 -v juming-nginx:/etc/nginx nginx;
#这里只指定容器内的路径,没指定容器外的路径,可以通过 docker inspect查看。# 查看所有卷“volume”的情况
docker volume ls;
#匿名挂载结果
DRIVER VOLUME NAME
local fd931a191fcd9b0ced88f8d11595847b18764c5d6af21ac71bd7159d49638206
#匿名挂载结果
DRIVER VOLUME NAME
local juming-nginx
#查看对应的路径
docker volume inspect juming-nginx
所有的docker容器内的卷,没有指定目录的情况下都是在“/var/lib/docker/volumes/卷名”
-v 容器内路径 #匿名挂载
-v 卷名:容器内路径 #具名挂载
-v /主机路径:容器内路径 #指定路径挂载
拓展#通过 -v 容器内路径,ro rw 改变读写权限
ro readonly 只读
rw readwrite 可读可写
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:ro nginx;
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:rw nginx;
#一定设定了权限 ro 说明这个路径只能通过主机来操作,容器内部无法操作!