什么是容器数据卷
容器之间可以有一个数据共享的技术,将docker中产生的数据同步到本地
目录挂载,将容器内的目录挂载到Linux上
容器的持久化和同步操作
容器之间也可以数据共享。
挂载
#/home/testing内数据发生变化,/home随之变化,同理,/home发生变化,/home/testing发生变化。
docker run -it -v /home/testing:/home nginx /bin/bash #-v 主机路径:容器路径 指定路径挂载
docker inspect 容器ID #查看容器信息
实例:安装mysql
docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=***** --name mysqlserver mysql:5.7
#-d 后台运行;
#-e 环境配置,这里是设置mysql密码;
#-p 端口映射;
#-v 挂载,可以同时挂载多个
具名挂载和匿名挂载
**匿名挂载**
docker run -d -v /etc/mysql/conf.d --name mysql02 mysql:5.7 #只有容器内的路径,没有主机路径
**具名挂载**
docker run -d -v actually-mysql:/etc/mysql/conf.d --name mysql03 mysql:5.7 # -v 卷名:容器内路径
docker volume ls #查看卷信息
docker volume inspect 卷名 #所有的docker容器内的卷,没有指定目录的情况下都是在/var/lib/docker/volumes/卷名/_data
权限
docker run -d -v true-nginx:/etc/nginx:ro nginx #ro readonly只读权限,只能通过主机操作,不能在容器内部操作挂载的内容
docker run -d -v true-nginx:/etc/nginx:rw nginx #rw 可读可写