MySQL 的 Docker 镜像在 dockerhub 上的地址:https://hub.docker.com//mysql
当前(2021-04-02)的 latest 和 8.0.23 是同一个镜像 。另外,5.7 版本和 5.7.33 是同一个镜像
第1步:安装mysql
查询中央仓库
docker search -f is-official=true mysql
运行效果:
从中央仓库下载MySQL
docker pull mysql:8.0.16
# 或,直接导入已有的镜像文件
# docker load -i mysql-8.0.16.tar
运行效果:
查看本地镜像
确认mysql已经成功安装
docker images
运行效果:
第2步:启动容器
01、创建目录
在/usr/local/docker目录下创建mysql目录用于存储mysql数据信息
cd /usr/local
mkdir -p docker/mysql
02、查看安装的MySQL版本
docker images mysql
运行效果:
03、启动容器
# 启动容器
docker run -d -p 3306:3306 -v /usr/local/docker/mysql/conf:/etc/mysql/conf.d -v /usr/local/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=Aa123123. --name mysql3306 mysql:8.0.16
-d 后台运行
-p 端口映射 # 前面是当前宿主机端口,后面是docker容器端口
-v 卷挂载 # 前面是当前宿主机文件/文件夹位置,后面是docker容器文件/文件夹位置
通过卷的挂载,使宿主机和docker中文件同步
-e 环境配置 # 安装启动mysql需要配置密码
--name 容器名字
运行效果:
04、查看容器状态
# 查看所有正在运行的容器
docker ps
# 查看docker所有的容器(包括运行、停止的容器)
docker ps -a
运行效果:
如果出现以上效果,说明mysql的容器已经启动成功了,并且正常运行。
05、进入MySQL容器开启远程连接
# 进入 mysql 容器
docker exec -it mysql3306 /bin/bash
# 执行 mysql-cli 的连接命令
mysql -uroot -pAa123123.
运行效果:
开启mysql远程访问
use mysql;
select user, host from user;
GRANT ALL ON *.* TO 'root'@'%';
flush privileges;
使用Navicate Premium 15
测试远程连接
发现可以正常访问