docker compose安装mysql8
配置 Docker 镜像加速器(推荐)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOF
sudo systemctl restart docker
创建项目目录
mkdir -p /opt/docker-compose/mysql8/{conf,data,logs} && cd /opt/docker-compose/mysql8
创建 docker-compose.yml
cat <<'EOF' > docker-compose.yml
version: '3.8'
services:
mysql:
image: mysql:8.0
container_name: mysql8
environment:
MYSQL_ROOT_PASSWORD: your_strong_password # 替换为安全密码
TZ: Asia/Shanghai
ports:
- "3308:3306"
volumes:
- ./data:/var/lib/mysql
- ./conf:/etc/mysql/conf.d # 挂载自定义配置
- ./logs:/var/log/mysql
restart: unless-stopped
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 5s
timeout: 10s
retries: 5
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_unicode_ci
--lower_case_table_names=1
--explicit_defaults_for_timestamp=1
volumes:
data:
EOF
启动服务
docker compose up -d
验证 MySQL 安装
# 检查容器状态
docker compose ps
# 查看日志
docker compose logs -f mysql
# 测试数据库连接
docker compose exec mysql mysql -u root -p -e "SELECT VERSION();"
配置持久性验证
# 重启服务器
sudo reboot
# 登录后检查网络设置
ip route show default
cat /etc/resolv.conf
# 检查 MySQL 是否自动启动
docker ps
# 或者
docker compose ps
其它
停止容器:
docker compose down
在docker-compose.yml所在目录执行,这将会停止并删除容器,但保留数据卷(data)以便下次使用。
如果同时想删除数据卷,则使用:docker compose down --volumes
国内mysql:8.4.6镜像地址:swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:8.4.6