CentOS 7 使用docker安装多个mysql

CentOS 7 使用docker安装mysql5.7和mysql8.0

  • 环境配置

    • 操作系统 CentOS Linux release 7.9.2009 x64

    • 当前没有安装mysql

  • 开始操作之前,请先了解一下docker,理解镜像和容器的区别嗷~

  • 首先安装docker

    • 使用官方安装脚本,从阿里云安装

      curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
      

    • 安装完成后查看版本

      docker -v
      # Docker version 20.10.5, build 55c4c88
      

    • 修改docker镜像源

      vi /etc/docker/daemon.json
      # 加上如下内容,如果下载速度还是不快可以换阿里云docker加速源
      {
          "registry-mirrors" : [
          "https://docker.mirrors.ustc.edu.cn",
          "http://hub-mirror.c.163.com"
        ]
      }
      

    • 启动docker服务

      systemctl start docker
      
    • 检查镜像源是否配置成功

      docker info
      

      输入docker info后找到最下面,看看上面的两个镜像是不是你配置的那两个?

    • docker拉取 mysql 5.7.33 和 mysql 8.0.23

      docker pull mysql:5.7.33
      # 这里可能需要一点时间,看网络情况,我只用了一分钟不到
      

      docker pull mysql:8.0.23
      # mysql:后面接版本号指定版本,简简单单~
      

    • 查看已经拉取的镜像

      docker images
      

    • docker启动mysql(镜像)

      # 运行命令可以这样写
      # docker run mysql:版本
      # docker run 上图的IMAGE ID
      
      # 一些运行参数说明:
      	# -d 后台运行
      	# --name 给运行的容器起个名字
      	# -p 映射宿主机(你当前操作的linux)端口和容器(docker)端口
      	# -e 设置环境变量,下面会使用这个设置数据库密码
      	
      # 好了我要启动了
      docker run --name mysql_01 -d -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql:5.7.33
      # 运行完成之后查看docker容器
      docker ps -a
      

    • 使用mysql 5.7.33

      • 注意:我的mysql 5.7.33 安装在docker容器中,在我的linux中没有安装mysql,所以我没有客户端用来连接mysql服务,目前要使用的话有两种办法:

        1. # 1.进入容器的命令交互行操作 ps:8480是上图中CONTAINER ID(容器ID)前四位
          docker exec -it 8480 bash
          # 进入容器的命令交互行后和正常使用linux一样
          mysql -u root -p
          # 搞定,但是使用完记得使用exit退出到你的linux的命令交互行
          

        2. 使用第三方工具比如navicat等进行连接,我这里用的是开源的heidisql

          ps:大哥,这回是远程连接,一点要记得关防火墙,或者3306加入白名单

          以下:

          ip是你当前linux的ip,端口是上面运行容器时映射的 3306

          账号是root,密码是运行容器时设置的环境变量MYSQL_ROOT_PASSWORD的值123456

    • 停止mysql运行和再次使用

      # 还记得查看docker容器的指令吗?
      docker ps -a # 记住你要操作的容器的CONTAINER ID
      
      # 停止容器
      docker stop 8480
      
      # 下次启动容器(记得要先systemctl start docker启动docker)
      docker start 8480
      

    • mysql8 的使用步骤同5.7,这里就不多介绍了,自己去尝试一下吧!

    • The end.

原文地址:https://www.cnblogs.com/hey-zero/p/14569229.html