Docker数据卷
为什么用到数据卷?
操作数据卷常用命令
数据卷命令练习
查看数据卷命令帮助
docker volume --help
1.创建数据卷
docker volume create html
2.列出所有数据卷
docker volume ls
3.查看数据卷详细信息
docker inspect 数据卷名称
挂载的宿主机目录
4.删除最近未使用的数据卷
docker volume prune
5.删除指定的数据卷
docker volume rm 数据卷名
数据卷挂载案例1
- 创建容器并挂载数据卷到html目录
docker run --name mn -p 80:80 -v html:/usr/share/nginx/html -d nginx
- 进入html数据卷的目录位置,修改其中的html内容
问题思考:刚刚的数据卷是创建好的所以能挂载成功,如果数据卷不存在是否能挂载目录成功呢?
我们先把容器和数据卷删除然后创建并挂载一个不存在的数据卷
docker rm -f mn #删除容器
docker volume prune #删除未使用的数据卷
docker run --name mn -p 80:80 -v html:/usr/share/nginx/html -d nginx
通过尝试后发现挂载一个不存在的数据卷也是可以成功的,docker会自动创建一个不存在的数据卷
数据卷挂载案例2
之前是数据卷挂载到了容器中的目录,现在呢可以把宿主机目录直接挂载到容器内目录,或者可以把宿主机文件挂载到容器中的文件
1.加载mysql镜像
docker load -i mysql.tar
查看镜像是否加载成功
docker images
2.创建目录data目录
mkdir -p mysql/data
3.创建目录conf目录
mkdir -p mysql/conf
4.创建并运行mysql容器
mysql的conf容器目录:
默认的mysql最好是不要改它,所以这里把配置放到/etc/mysql/conf.d(.d代表是个目录)下最后是进行合并配置的。
mysql的data容器目录
docker run \
--name mysql \
-e MYSQL_ROOT_PASSWORD=123 \
-p 3306:3306 \
-v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \
-v /tmp/mysql/data:/var/lib/mysql \
-d mysql:5.7.25