首先创建临时容器
docker run -d -p 3318:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.38
创建mysql文件挂载目录,然后从临时容器中拷贝出配置文件
mkdir -p /data/docker/mysql/log
mkdir -p /data/docker/mysql/data
mkdir -p /data/docker/mysql/conf
mkdir -p /data/docker/mysql/init
docker cp fa56eb2a417657982234968aa55a8cab3b81b00f1a6da267c0d9039d4ac84d98:/var/log/mysql /data/docker/mysql/log
docker cp fa56eb2a417657982234968aa55a8cab3b81b00f1a6da267c0d9039d4ac84d98:/var/lib/mysql /data/docker/mysql/data
docker cp fa56eb2a417657982234968aa55a8cab3b81b00f1a6da267c0d9039d4ac84d98:/etc/mysql/conf /data/docker/mysql/conf
docker cp fa56eb2a417657982234968aa55a8cab3b81b00f1a6da267c0d9039d4ac84d98:/docker-entrypoint-initdb.d /data/docker/mysql/init
使用挂载目录启动mysql容器
docker run -d -p 3318:3306 --name mysql -v /data/docker/mysql/log:/var/log/mysql -v /data/docker/mysql/data:/var/lib/mysql -v /data/docker/mysql/conf:/etc/mysql -v /data/docker/mysql/init:/docker-entrypoint-initdb.d/ -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.38
# 命令及参数说明
# docker run 启动容器
# -d 后台运行
# -p 3318:3306 端口映射
# --name mysql 容器名
# -v /data/docker/mysql/log:/var/log/mysql 目录映射,前面是宿主机目录,后面是容器内目录
# -e MYSQL_ROOT_PASSWORD=123456 环境变量 此处是设置mysql的密码为123456
# mysql:5.7.38 镜像名称
容器启动成功
![](https://i-blog.csdnimg.cn/blog_migrate/d712e07f288dcc4368cef3607d975ea3.png)
启动成功后还需要配置Mysql允许远程连接,参考文档如下
https://blog.csdn.net/qq_54042324/article/details/122202893
=======================
使用docker-compose.yml 文件,使用docker-compose up -d 命令启动,自动创建卷并挂载
services:
mysql:
image: "mysql"
volumes:
- mysql_log:/var/log/mysql
- mysql_data:/var/lib/mysql
- mysql_conf:/etc/mysql/conf
- mysql_init:/docker-entrypoint-initdb.d
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=123456
volumes:
mysql_log:
mysql_data:
mysql_conf:
mysql_init: