
immer/mysqlMySQL Docker镜像是基于官方MySQL数据库管理系统构建的容器化部署方案,提供了隔离、可移植的数据库运行环境。该镜像封装了MySQL的核心功能,支持快速启动、配置和扩展,适用于开发、测试及生产环境中作为应用程序的关系型数据库后端,满足数据存储、查询和事务处理需求。
通过docker run快速启动MySQL容器:
bashdocker run --name mysql-demo -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest
参数说明:
--name mysql-demo:指定容器名称-e MYSQL_ROOT_PASSWORD=my-secret-pw:设置root用户密码(必填)-d:后台运行容器mysql:latest:使用最新版本MySQL镜像(可指定版本如mysql:8.0)为避免容器删除导致数据丢失,需挂载宿主机目录或命名卷:
bash# 使用宿主机目录 docker run --name mysql-persistent -e MYSQL_ROOT_PASSWORD=my-secret-pw \ -v /path/on/host/mysql-data:/var/lib/mysql \ -d mysql:latest # 使用命名卷(推荐) docker volume create mysql-data-vol docker run --name mysql-persistent -e MYSQL_ROOT_PASSWORD=my-secret-pw \ -v mysql-data-vol:/var/lib/mysql \ -d mysql:latest
将容器内MySQL端口(默认3306)映射到宿主机,允许外部访问:
bashdocker run --name mysql-port -e MYSQL_ROOT_PASSWORD=my-secret-pw \ -p 3306:3306 \ -d mysql:latest
外部可通过mysql -h localhost -P 3306 -u root -p连接数据库。
使用docker-compose.yml管理多服务环境(如搭配应用服务):
yamlversion: '3.8' services: mysql: image: mysql:8.0 container_name: app-mysql restart: always # 容器退出时自动重启 environment: MYSQL_ROOT_PASSWORD: root-pass MYSQL_DATABASE: app_db # 初始化创建的数据库名 MYSQL_USER: app_user # 额外创建的数据库用户 MYSQL_PASSWORD: app-pass # 用户密码 volumes: - mysql-data:/var/lib/mysql # 数据持久化卷 - ./my.cnf:/etc/mysql/conf.d/custom.cnf # 挂载自定义配置文件 ports: - "3306:3306" networks: - app-network networks: app-network: driver: bridge volumes: mysql-data: # 命名卷定义
启动命令:docker-compose up -d
MySQL镜像支持以下常用环境变量(通过-e或environment指定):
| 环境变量 | 说明 | 必填 |
|---|---|---|
MYSQL_ROOT_PASSWORD | root用户密码 | 是 |
MYSQL_DATABASE | 容器启动时自动创建的数据库名 | 否 |
MYSQL_USER | 除root外创建的数据库用户 | 否 |
MYSQL_PASSWORD | MYSQL_USER对应的密码 | 否(若指定MYSQL_USER则必填) |
MYSQL_ALLOW_EMPTY_PASSWORD | 允许root空密码(不推荐生产环境) | 否(默认no) |
MYSQL_RANDOM_ROOT_PASSWORD | 随机生成root密码(日志中输出) | 否(与MYSQL_ROOT_PASSWORD互斥) |
MYSQL_ONETIME_PASSWORD | 将root密码设为一次性(首次登录需修改) | 否 |
通过挂载配置文件覆盖默认设置(如调整缓存大小、连接数等):
my.cnf(自定义配置):ini[mysqld] max_connections=200 innodb_buffer_pool_size=256M slow_query_log=1 slow_query_log_file=/var/log/mysql/slow.log
bashdocker run --name mysql-custom-config -e MYSQL_ROOT_PASSWORD=my-secret-pw \ -v ./my.cnf:/etc/mysql/conf.d/custom.cnf \ -d mysql:latest
注:容器内MySQL会加载
/etc/mysql/conf.d/目录下所有.cnf文件,自定义配置优先级高于默认配置。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务