使用docker-compose部署单机MySQL

拉取MySQL镜像

1
docker pull mysql:8

创建挂载目录

1
2
mkdir -p /app/docker/mysql8/log
mkdir -p /app/docker/mysql8/data

编写 docker-compose.yml 文件

1
2
cd /app/docker/mysql8
vim docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
services:
mysql:
container_name: mysql
image: mysql:8
restart: always
ports:
- "3306:3306"
environment:
TZ: Asia/Shanghai # 设置容器时区
MYSQL_TCP_PORT: 3306
MYSQL_ROOT_PASSWORD: root # root用户密码
#MYSQL_ROOT_HOST: 'localhost' # 是否开启root账号的远程登录,默认是开启的,启用:填'%'或者注释掉这行,禁用:填'localhost'
volumes:
- "./data:/var/lib/mysql" # 映射数据目录
- "./log:/var/log/mysql" # 映射日志目录

启动容器

1
docker compose up -d

运行后查看启动容器的情况

1
2
docker ps
docker compose logs

连接测试

1
2
3
docker exec -it 容器ID /bin/bash
mysql -h127.0.0.1 -uroot -p
输入密码

如果远程连接不上可以看看防火墙是否已经开放3306端口

以Ubuntu为例:

1
2
3
sudo ufw status
sudo ufw status numbered
sudo ufw allow 3306