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

安装 Docker

其他系统可以参考:Docker 安装

  1. 先安装一些必要的软件包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 设置稳定的仓库源,国内服务器建议设置镜像源
# 官方源地址(国内比较慢)
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 腾讯云(腾讯云服务器可以走内网源:mirrors.tencentyun.com)
sudo yum-config-manager --add-repo https://mirrors.cloud.tencent.com/docker-ce/linux/centos/docker-ce.repo
  1. 更新 YUM 缓存,安装最新版本的 Docker Engine-Community 和 containerd
sudo yum install docker-ce docker-ce-cli containerd.io
  1. 启动 Docker 并设为开机自启
sudo systemctl start docker
sudo systemctl enable docker

拉取 MySQL 镜像

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

  1. 运行MySQL容器
docker run -d -p 3306:3306 --privileged=true \
    -v /docker/mysql/conf/my.cnf:/etc/my.cnf \
    -v /docker/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 表示容器内部端口和服务器端口映射关联,前面是宿主机端口,后面是容器端口
--privileged=true 设值 MySQL 的 root 用户权限, 否则外部不能使用 root 用户登陆
-v /docker/mysql/conf/my.cnf:/etc/my.cnf 映射配置文件
-v /docker/mysql/data:/var/lib/mysql 将容器的 /var/lib/mysql 目录挂载到主机的 /docker/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

新建MySQL用户

也可以通过一些第三方工具连入数据库新建,比如:Navicat

# 用命令行的方式进入容器
docker exec -it mysql bash
# 登录 MySQL
mysql -uroot -pqwer1234
# 输入密码后, 执行下面命令创建新用户 (用户名: test , 密码: test1234)
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' IDENTIFIED BY 'test1234' WITH GRANT OPTION;

可能遇到的问题

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


Never give up your dreams.