Docker数据卷

为什么用到数据卷?


操作数据卷常用命令


数据卷命令练习

查看数据卷命令帮助

docker volume --help
image

1.创建数据卷

docker volume create html

2.列出所有数据卷

docker volume ls
image

3.查看数据卷详细信息

docker inspect 数据卷名称
挂载的宿主机目录
image

4.删除最近未使用的数据卷

docker volume prune
image

5.删除指定的数据卷

docker volume rm 数据卷名
image

数据卷挂载案例1

image

image

  1. 创建容器并挂载数据卷到html目录
    docker run --name mn -p 80:80 -v html:/usr/share/nginx/html -d nginx
    image
  2. 进入html数据卷的目录位置,修改其中的html内容
    image

image
image

问题思考:刚刚的数据卷是创建好的所以能挂载成功,如果数据卷不存在是否能挂载目录成功呢?

我们先把容器和数据卷删除然后创建并挂载一个不存在的数据卷

docker rm -f mn #删除容器
docker volume prune #删除未使用的数据卷

image
docker run --name mn -p 80:80 -v html:/usr/share/nginx/html -d nginx
通过尝试后发现挂载一个不存在的数据卷也是可以成功的,docker会自动创建一个不存在的数据卷
image

image

数据卷挂载案例2

之前是数据卷挂载到了容器中的目录,现在呢可以把宿主机目录直接挂载到容器内目录,或者可以把宿主机文件挂载到容器中的文件
image

1.加载mysql镜像
docker load -i mysql.tar
image
查看镜像是否加载成功
docker images
image
2.创建目录data目录
mkdir -p mysql/data
3.创建目录conf目录
mkdir -p mysql/conf
image
4.创建并运行mysql容器
mysql的conf容器目录:
默认的mysql最好是不要改它,所以这里把配置放到/etc/mysql/conf.d(.d代表是个目录)下最后是进行合并配置的。
image
mysql的data容器目录
image

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

image

image

posted @ 2022-08-23 00:09  长情c  阅读(25)  评论(0)    收藏  举报