案例一、MySQL容器的数据挂载
需求:
查看mysql容器,判断是否有数据卷挂载
基于宿主机目录实现MySQL数据目录、配置文件、初始化脚本的挂载
docker默认使用的是volume(匿名卷),现在需要挂载本地宿主机目录
自定义数据卷
在执行docker run
命令时,使用-v 本地目录:容器内目录
可以完成本地目录挂载
本地目录必须以/
或./
开头,如果直接以名称开头,会被识别为数据卷而非本地目录**
-v mysql:/var/lib/mysql
会被识别为一个数据卷叫mysql
-v ./mysql:/var/lib/mysql
会被识别为当前目录下的mysql
-v /root/mysql:/var/lib/mysql
会被识别为本地目录/root下的mysql
挂载/root/mysql/data
到容器内的/var/lib/mysql
目录
-v /root/mysql/data:/var/lib/mysql
挂载/root/mysql/init
到容器内的/docker/entrypoint-initdb.d
目录
-v /root/mysql/init:/docker-entrypoint-initdb.d
挂载/root/mysql/conf
到容器内的/etc/mysql/my.cnf
目录
-v /root/mysql/conf:/etc/mysql/conf.d
mkdir -p /root/mysql/data
mkdir -p /root/mysql/conf
mkdir -p /root/mysql/init
docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=root \
-v /root/mysql/data:/var/lib/mysql \
-v /root/mysql/init:/docker-entrypoint-initdb.d \
-v /root/mysql/conf:/etc/mysql/conf.d \
mysql
docker ps
ls /root/mysql/data