Mysql 和 Adminer 作业环境搭建

Dec 5, 2025 Homecat

利用 Docker 搭建 Mysql + Adminer 作业环境,

作业目录

project
  ├─ conf 
  │   └─ my-custom.cnf      配置文件
  ├─ data                数据文件目录
  ├─ .env                环境变量文件 
  └─ docker-compose.yaml    容器文件

相关文件

容器文件

docker-compose.yaml

services:
  db-server:
    image: mysql:8.0
    container_name: mysql-server
    environment:
      MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
      MYSQL_DATABASE: ${DB_DATABASE}
      MYSQL_USER: ${DB_USER}
      MYSQL_PASSWORD: ${DB_PASSWORD}
    volumes:
      - ./data:/var/lib/mysql
      - ./conf:/etc/mysql/conf.d
    ports:
      - "3306:3306"
    networks:
      - db_net
    command:
      - --default-authentication-plugin=caching_sha2_password
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 60s
    deploy:
      resources:
        limits:
          memory: 1G
          cpus: '1.0'
        reservations:
          memory: 512M
          cpus: '0.5'

  db-adminer:
    image: adminer:5.4.1
    container_name: mysql-adminer
    environment:
      ADMINER_DEFAULT_SERVER: db-server
      ADMINER_DEFAULT_DB: ${DB_DATABASE}
    ports:
      - "8080:8080"
    depends_on:
      db-server:
        condition: service_healthy
    networks:
      - db_net

networks:
  db_net:
    driver: bridge

环境变量文件

.env

DB_ROOT_PASSWORD = 数据库 root 密码
DB_DATABASE = 数据库名
DB_USER = 用户名
DB_PASSWORD = 用户密码

数据库配置文件

mysql/cond/my-custom.cnf

[mysqld]
bind-address = 0.0.0.0  //不限制访问地址 
default-time-zone = '+8:00' //设置东八区时间

生成容器

docker compose up -d

[+] Running 3/3
 ✔ Network database_db_net  Created       0.1s 
 ✔ Container mysql-server   Healthy      21.3s 
 ✔ Container mysql-adminer  Started      21.3s 

访问

  • 容器中安装了 MySQL 的管理工具 Adminer,开放了 8080 端口,可以通过 SERVER_IP:8080 地址访问。
  • 同时可以通过 MySQL 客户端使用 MySQL 命令访问,开放了 3306 端口。