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



浙公网安备 33010602011771号