Docker 装 MySQL
一、前置准备:设置 Docker 加速镜像
1. 操作步骤
-
进入 Docker 配置目录(无则创建):
1cd /etc/docker -
创建/编辑配置文件
daemon.json:1vi daemon.json -
写入以下加速镜像配置(JSON 格式):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22{ "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } }, "experimental": false, "registry-mirrors": [ "https://docker.hpcloud.cloud", "https://docker.m.daocloud.io", "https://docker.unsee.tech", "https://docker.1panel.live", "http://mirrors.ustc.edu.cn", "https://docker.chenby.cn", "http://mirror.azure.cn", "https://dockerpull.org", "https://dockerhub.icu", "https://hub.rat.dev" ] }
二、步骤1:拉取 MySQL 镜像
1. 拉取命令
|
|
2. 验证拉取结果
查看已拉取的镜像:
|
|
3. 预期输出示例
|
|
三、步骤2:配置 MySQL 并创建容器
1. 准备 MySQL 配置文件
创建配置文件 my.cnf(建议放在自定义目录,如 /gxp/dockersoft/mysql/conf),内容如下:
|
|
2. 创建并运行容器
(1)命令格式
|
|
(2)参数说明
| 参数 | 含义 |
|---|---|
--name mysqlserver |
容器名称(自定义,如 mysqlserver) |
-p 3306:3306 |
端口映射:主机 3306 端口 → 容器 3306 端口 |
-v 主机路径:容器路径 |
目录挂载(实现主机与容器文件同步,无需进入容器修改配置) |
$PWD |
当前命令执行目录(建议先 cd 到自定义目录,如 /gxp/dockersoft/mysql) |
-e MYSQL_ROOT_PASSWORD=root |
设置 MySQL root 用户密码(自定义,如 root) |
(3)推荐目录结构(示例)
|
|
目录权限设置(可选):
|
|
(4)挂载逻辑说明
Docker 容器内的配置/数据默认仅存储在容器中,通过 -v 挂载后:
-
主机
conf目录 → 容器my.cnf配置文件(修改主机文件即同步容器配置) -
主机
data目录 → 容器数据目录(避免容器删除后数据丢失) -
主机
logs目录 → 容器日志目录(方便在主机查看 MySQL 日志)
四、步骤3:连接 MySQL
容器启动后,可通过 Navicate、SQLyog 等工具连接:
-
主机地址:Docker 所在服务器 IP
-
端口:3306(已映射)
-
用户名:root
-
密码:root(创建容器时设置的密码)
五、Docker 常用命令
| 功能 | 命令 |
|---|---|
| 拉取镜像 | docker pull 镜像名称(如 mysql) |
| 查看所有已拉取镜像 | docker images |
| 查看所有容器(运行+停止) | docker ps -a |
| 启动容器 | docker start 容器名称/ID |
| 停止容器 | docker stop 容器名称/ID |
| 删除容器 | docker rm 容器名称/ID |
| 查看容器日志 | docker logs 容器名称/ID |
| 进入容器内部 | docker exec -it 容器名称/ID /bin/bash |