docker compose安装mysql8
docker compose安装mysql8
- 配置 Docker 镜像加速器(推荐)
- 创建项目目录
- 创建 docker-compose.yml
- 启动服务
- 验证 MySQL 安装
- 配置持久性验证
- 其它
配置 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.0container_name: mysql8environment:MYSQL_ROOT_PASSWORD: your_strong_password # 替换为安全密码TZ: Asia/Shanghaiports:- "3308:3306"volumes:- ./data:/var/lib/mysql- ./conf:/etc/mysql/conf.d # 挂载自定义配置- ./logs:/var/log/mysqlrestart: unless-stoppedhealthcheck:test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]interval: 5stimeout: 10sretries: 5command:--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