查看尽管我们可以进入容器内部,但是在容器内部修改文件是不可行的。所以就需要数据卷,实现宿主机文件和容器内部文件做映射了。
这里以nginx做举例

其中/var/lib/docker/volumes 是固定的目录
这里数据卷会实现宿主机目录和容器目录的双向绑定。既在宿主机文件目录做文件修改会同步到文到容器文件内部
数据卷命令
从中可以看出都是 docker volume 开头

docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx
//查看数据卷列表
docker volume ls
//查看数据卷的位置
docker volume inspect html

宿主机目录和容器的数据挂载

进入root目录创建conf,data init 文件夹,将数据库初始化脚本放在init文件下。
-
挂载
/root/mysql/data
到容器内的/var/lib/mysql
目录 -
挂载
/root/mysql/init
到容器内的/docker-entrypoint-initdb.d
目录(初始化的SQL脚本目录) -
挂载
/root/mysql/conf
到容器内的/etc/mysql/conf.d
目录(这个是MySQL配置文件目录)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/conf:/etc/mysql/conf.d
-v /root/mysql/init:/docker-entrypoint-initdb.d
mysql
密码可以根据自己的需求进行修改

通过两个例子可以看出docker数据卷挂载分为两种方式,一种docker volume创建固定的目录进行挂载,也可以通过制定目录进行数据卷挂载。