数据卷
数据卷是一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁。(容器内目录与宿主机目录对应的桥梁,修改宿主机对应的目录,docker会映射到容器内部,相当于修改了容器内的,反之也一样)数据卷将宿主机目录映射到容器内目录,方便我们操作容器内文件,或者方便我们迁移容器产生的数据。
命令
docker volume create 创建数据卷
docker volume ls 查看所有数据卷
docker volume rm 删除指定数据卷
docker volume inspect 查询某个数据卷的详情
docker volume prune 清除数据卷
提示
在执行docker run命令时,使用-v数据卷:容器内目录可以完成数据卷的挂载
当创建容器时,如果挂载了数据卷且数据卷不存在,docker会自动创建数据卷
数据卷 数据卷名称要唯一
容器内目录 需要在官网查询对应的文件目录
例子
nginx部署静态资源
官网查询到nginx容器目前为 /usr/share/nginx/html
所以启动nginx命令为
docker run -d --name ng -p 80:80 -v nghtml:/usr/share/nginx/html nginx
docker启动nginx,并挂载数据卷。如宿主机没有目录,docker会自动创建目录与nginx容器目录映射。
或者
-v 本地目录:容器内目录
本地目录必须以“/” 或者“./” 开头,否则会当成数据卷名称挂载
如:
-v mysql:/var/lib/mysql 会被识别为一个数据卷叫mysql
-v ./mysql:/var/lib/mysql 会被识别为当前目录下的mysql目录
例子
mysql挂载/root/mysql/data到容器内/var/lib/mysql
mysql挂载/root/mysql/init到容器内/docker-entrypoint-initdb.d目录
mysql挂载/root/mysql/config到容器内/etc/mysql/config.d目录
启动命令
docker run -d
--name mysql
-p 3306:3306
-e TZ=Asia/Shanghai
-e MYSQL_ROOT_PASSWORD=123
-v /root/mysql/data:/var/lib/mysql
-v /root/mysql/init:/docker-entrypoint-initdb.d
-v /root/mysql/conf:/etc/mysql/conf.d mysql
根据需要配置目录
补充: mkdir创建目录
docker inspect mysql 查看