docker安装mysql
更新于 2026年8月6日
docker安装MySQL详细教程,讲解容器部署MySQL配置、端口映射、密码设置、挂载数据卷、远程连接,附docker run和docker compose可直接复制命令与常见报错解决。
镜像运行mysql8语句
先创建相关的文件夹(根据自己的文件目录来选择)
mkdir -p /home/mysql8/conf /home/mysql8/data /home/mysql8/logs 需要挂载目录(设置自己的目录) 为确保容器能够正常访问和写入这些目录,需要调整宿主机目录的权限
sudo chown -R 999:999 /home/mysql/data
sudo chown -R 999:999 /home/mysql/logs
sudo chown -R 999:999 /home/mysql/conf 镜像运行mysql8语句
docker run -d
–name mysql8
-e MYSQL_ROOT_PASSWORD=5d41402abc4b2a76b9719d911017c592
-e MYSQL_ROOT_HOST=%
-e MYSQL_DEFAULT_AUTH=mysql_native_password
-p 1308:3306
-v /home/mysql8/conf/my.cnf:/etc/mysql/my.cnf
-v /home/mysql8/data:/var/lib/mysql
-v /home/mysql8/logs:/var/log/mysql
mysql:8
| 参数 | 说明 |
|---|---|
| -d | 后台运行容器 |
| –name mysql8 | 给容器命名为 mysql8 |
| -e MYSQL_ROOT_PASSWORD=rootpassword | 设置 root 用户密码为 yourpassword |
| -p 1308:3306 | 映射宿主机的 1308 端口到容器的 3306 端口 |
| -v /home/mysql8/conf/my.cnf:/etc/mysql/my.cnf | 挂载宿主机的 MySQL 配置文件到容器内 |
| -v /home/mysql8/data:/var/lib/mysql | 挂载宿主机的 MySQL 数据目录到容器内 |
| -v /home/mysql8/logs:/var/log/mysql | 挂载宿主机的 MySQL 日志目录到容器内 |
镜像运行mysql5语句
docker run -d \
--name mysql5 \
--restart always \
-e MYSQL_ROOT_PASSWORD=5d41402abc4b2a76b9719d911017c593 \
-e MYSQL_ROOT_HOST=% \
-p 1305:3306 \
-v /home/mysql5/conf/my.cnf:/etc/mysql/my.cnf \
-v /home/mysql5/data:/var/lib/mysql \
-v /home/mysql5/logs:/var/log/mysql \
mysql:5.7
| 参数 | 说明 |
|---|---|
| -d | 后台运行容器 |
| –name mysql5 | 给容器命名为 mysql5 |
| –restart always | 开机重启 |
| -e MYSQL_ROOT_PASSWORD=rootpassword | 设置 root 用户密码为 yourpassword |
| -p 1305:3306 | 映射宿主机的 1305 端口到容器的 3306 端口 |
| -v /home/mysql5/conf/my.cnf:/etc/mysql/my.cnf | 挂载宿主机的 MySQL 配置文件到容器内 |
| -v /home/mysql5/data:/var/lib/mysql | 挂载宿主机的 MySQL 数据目录到容器内 |
| -v /home/mysql5/logs:/var/log/mysql | 挂载宿主机的 MySQL 日志目录到容器内 |
还可以用compose来创建mysql容器
version: "3.8"
services:
mysql8:
image: mysql:8
container_name: mysql8
restart: unless-stopped
# 环境变量
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_ROOT_HOST: "%"
MYSQL_DEFAULT_AUTH: mysql5_password
# 端口映射
ports:
- "1305:3306"
# 数据卷挂载
volumes:
- /home/mysql5/conf/my.cnf:/etc/mysql/my.cnf
- /home/mysql5/data:/var/lib/mysql
- /home/mysql5/logs:/var/log/mysql
# 网络配置
networks:
- mysql-network
# 定义网络
networks:
mysql-network:
driver: bridge
# 定义数据卷(可选,如果想使用命名卷)
volumes:
mysql8-data:
driver: local
mysql8-logs:
driver: local
好的