docker安装mysql5.7(centos7.6)

利用闲置的阿里云服务器来尝试安装mysql, redis, mongodb。

一、环境

  • 系统: centos7.6
  • 数据库: mysql5.7

二、docker 拉取 mysql5.7

Tip: 这里就不介绍docker的安装,我的文章里有介绍如何安装docker`

sudo docker pull mysql:5.7

查看拉取的镜像

sudo docker images

拉取的mysql镜像

三、创建文件夹保存数据

mkdir -p /data/mysql/conf  (保存mysql配置文件)
mkdir -p /data/mysql/data  (保存mysql数据)
mkdir -p /data/mysql/log      (保存mysql日志)  

四、创建容器

sudo docker run -p 3306:3306 --name mysql -v /data/mysql/conf:/etc/mysql -v /data/mysql/log:/var/log/mysql -v /data/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=12345678  -d mysql:5.7

参数说明:

-p        3306(本机端口):3306(容器端口)     将容器3306的端口映射到本机的3306端口
--name    mysql   为创建的容易命名
-v        /data/mysql/conf:/etc/mysql      将本地文件夹映射到容器的文件夹里
-e        MYSQL_ROOT_PASSWORD=12345678    设置root的密码
-d        指定创建容器的image

Tips: 不同的镜像,对应容器里面的文件夹路径也不同,如果路径不存在会报错。如果想查看容易内的mysql文件的路径,可参考下面做法

  • 创建一个守护态的Docker容器
    sudo docker run -itd mysql:5.7 /bin/bash
  • 查看容器信息
    sudo docker ps -a
  • 使用docker attach进入该容器
    sudo docker attach 407717ba3d18(对应容器的ID)

五、结语

到此为止,docker容器已经启动。那么我们怎么连接mysql呢?

centos7默认的防火墙是firewall 所以我们直接操作firewall就可以啦

添加3306端口

firewall-cmd --permanent --add-port=3306/tcp

显示success即为成功

参数介绍:

1、firewall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;

番外篇

firewall常用命令
  • 1、重启、关闭、开启firewalld.service服务
service firewalld restart 重启
service firewalld start 开启
service firewalld stop 关闭
  • 2、查看firewall服务状态
    systemctl status firewall
  • 3、查看firewall的状态
    firewall-cmd --state
  • 4、查看防火墙规则
    firewall-cmd --list-all

到这里就真的是结束啦,不过有的人发现设置了firewall还是不能成功访问,这又是为什么呢?那么就要查看下阿里云服务器的安全组是否有设置3306, 因为安全原因,在创建服务器的时候,有些服务器只会设置22端口。那么在阿里云服务器的安全组设置允许3306端口访问就可以啦。

你可能感兴趣的:(docker安装mysql5.7(centos7.6))