Docker 是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

拉取 MySQL 镜像

  1. 查找 MySQL 镜像并获取 MySQL 5.7 的镜像,不带版本号则获取最新的 MySQL 镜像
docker search mysql
docker pull mysql:5.7

  1. 创建 MySQL 容器
docker run -d -p 3306:3306 \
    -v /opt/mysql/conf/my.cnf:/etc/my.cnf \
    -v /opt/mysql/data:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=qwer1234 \
    --name mysql mysql:5.7 \
    --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci

参数说明
run 表示运行一个容器
-d 表示在后台运行
-p 表示容器内部端口和服务器端口映射关联,前面是宿主机端口,后面是容器端口
-v /opt/mysql/conf/my.cnf:/etc/my.cnf 映射配置文件
-v /opt/mysql/data:/var/lib/mysql 将容器的 /var/lib/mysql 目录挂载到主机的 /opt/mysql/data 目录
-e MYSQL_ROOT_PASSWORD=qwe123456 设置 MySQL 数据库 root 用户的密码
--name mysql 设置容器名称为 mysql
mysql:5.7 表示使用 Docker 镜像 mysql:5.7 创建一个容器
--character-set-server=utf8mb4 设置数据库的默认字符集
--collation-server=utf8mb4_general_ci 设置数据库的字符比较规则

  1. 查看是否启动成功
# 列出所有在运行的容器信息
docker ps

设置远程登录

配置好远程登录后可以通过一些第三方工具连入数据库,比如:Navicat

# 用命令行的方式进入容器
docker exec -it mysql bash
# 登录 MySQL
mysql -uroot -p
# 为 root 用户进行远程访问的授权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'qwe123456' WITH GRANT OPTION;
# 重新加载权限数据,使之生效
flush privileges;

可能遇到的问题

  1. https://www.pianshen.com/article/7294152730/


Never give up your dreams.