Linux下Docker安装mysql-超详细步骤

  1. 安装Docker Engine

官方参考文档:https://docs.docker.com/engine/install/centos/

  • 若之前有安装docker,需要先卸载之前的docker

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
  • 安装必要的依赖

sudo yum install -y yum-utils
  • 设置docker仓库

sudo yum-config-manager \  
            --add-repo \  
            https://download.docker.com/linux/centos/docker-ce.repo
  • 查看可以安装的docker版本

yum list docker-ce --showduplicates | sort -r
  • 安装最新的或者指定的docker版本

最新的:sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

指定的:sudo yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io docker-compose-plugin
Linux下Docker安装mysql-超详细步骤_第1张图片
  • 启动docker并设置为开机启动

sudo systemctl start docker && sudo systemctl enable docker
  • 测试docker是否安装成功

sudo docker run hello-world
Linux下Docker安装mysql-超详细步骤_第2张图片

出现 Hello from Docker! 表示docker安装成功

  • 配置docker的镜像加速器

先进入到/etc/docker, 找到daemon.json文件,打开文件配置镜像加速器地址。(没有的话需要自己创建目录和json文件。

Linux下Docker安装mysql-超详细步骤_第3张图片
{
"registry-mirrors":["https://rsbud4vc.mirror.aliyuncs.com","https://docker.mirrors.ustc.edu.cn","http://hub-mirror.c.163.com","http://qtid6917.mirror.aliyuncs.com","https://rncxm540.mirror.aliyuncs.com","https://e9yneuy4.mirror.aliyuncs.com","https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors"]
}

  1. 下载image镜像并创建docker容器实例

参考文档:https://www.docker.com/

参考文档:https://hub.docker.com/

  • 下载mysql的image镜像

docker pull mysql:5.7
  • 查看下载的镜像

docker images
  • 根据镜像创建docker容器

docker run -d -p 3306:3306 --privileged=true -v /usr/local/mysql/log:/var/log/mysql -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=abc123456 --name mysql mysql:5.7
  • 查看创建的docker容器实例

docker ps

出现如上的容器实例ID和容器实例名mysql的信息表示 docker启动mysql容器成功!

  1. 进入到docker容器实例修改访问权限

  • 进入到docker容器实例中

docker exec -it mysql /bin/bash
Linux下Docker安装mysql-超详细步骤_第4张图片
  • mysql5.7版本支持远程Ip访问需要修改访问授权

mysql> grant all privileges on *.* to root@"%" identified by "abc123456" with grant option;
  • 刷新权限集

mysql> flush privileges;
  • 修改完成后输入exit退出容器实例,返回到宿主机上

Linux下Docker安装mysql-超详细步骤_第5张图片
  1. 进入docker修改my.conf配置

  • 进入到/etc/mysql/conf.d 下修改 my.conf文件的配置

Linux下Docker安装mysql-超详细步骤_第6张图片
  • 或者修改宿主机上的配置文件可以映射修改容器内的配置(/usr/local/mysql/conf/my.conf)

Linux下Docker安装mysql-超详细步骤_第7张图片
[client]
default_character_set=utf8
[mysqld]
collation_server=utf8_general_ci
character_set_server=utf8

[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
  1. 打开防火墙端口

  • 查询防火墙是否打开

systemctl firewall status
Linux下Docker安装mysql-超详细步骤_第8张图片

出现active 或者running 或者 enabled表示防火墙已打开。

  • 查询对应端口是否已经开放防火墙

firewall-cmd --query-port=3306/tcp
  • 打开对应端口的防火墙控制规则

firewall-cmd --zone=public --add-port=3306/tcp --permanent
  • 刷新防火墙规则

firewall-cmd --reload
  • 查询已经打开的防火墙端口列表

firewall-cmd --list-port

使用本地telnet ip port测试远程服务器的端口是否已经打开防火墙限制!

  1. 远程连接测试

使用navicat连接mysql数据库是否成功。

Linux下Docker安装mysql-超详细步骤_第9张图片

你可能感兴趣的:(Linux,linux,运维,服务器,docker,mysql)