原创

Docker安装MySQL和Redis

温馨提示:
本文最后更新于 2018年07月11日,已超过 2,326 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

Docker安装MySQL

安装命令

[root@lzhpo-ecs ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/mysql     5.7                 e1e1680ac726        3 weeks ago         373 MB
[root@lzhpo-ecs ~]# run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 e1e1680ac726

其实,镜像ID也可以换成容器名称加上标签(docker.io/mysql:5.7)

安装遇到的问题

1. 无法运行MySQL容器

无法运行MySQL容器:

问题解析:

docker服务启动时定义的自定义链DOCKER由于某种原因被清掉,
重启docker服务及可重新生成自定义链DOCKER。

解决办法:重启Docker。

systemctl restart docker

2. 无法使用Navicat连接阿里云ECS中使用Docker安装的MySQL

进入容器内部就可以使用,但是无法使用Navicat连接。

解决办法:开放阿里云的安全组规则中的3306端口。

如果是自己本机安装的Centos7系统,就开放3306端口,阿里云服务器是直接在阿里云的控制台的安全组规则那里开放端口。

# 启动防火墙
systemctl start firewalld.service

# 开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp--permanent

# 查看开放的端口
firewall-cmd --list-ports

# 查看监听的端口
netstat -lntp

# 查看监听的3306端口被谁占用了
netstat -lnp|grep 3306

# 删除开放的端口
firewall-cmd --zone= public--remove-port=3306/tcp --permanent

同时,还要开放MySQL权限以供外部环境使用root账号连接:

mysql> use mysql;

mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

mysql> flush privileges;

如果是MySQL8

mysql> use mysql;

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Lzp123456';  

mysql> flush privileges;

连接成功:

Docker安装Redis

[root@aliyun-lzhpo-ecs ~]# docker pull redis
Using default tag: latest
Trying to pull repository docker.io/library/redis ... 
latest: Pulling from docker.io/library/redis
1ab2bdfe9778: Pull complete 
966bc436cc8b: Pull complete 
c1b01f4f76d9: Pull complete 
8a9a85c968a2: Pull complete 
8e4f9890211f: Pull complete 
93e8c2071125: Pull complete 
Digest: sha256:9755880356c4ced4ff7745bafe620f0b63dd17747caedba72504ef7bac882089
Status: Downloaded newer image for docker.io/redis:latest

[root@aliyun-lzhpo-ecs ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/redis     latest              f7302e4ab3a8        3 weeks ago         98.2 MB

[root@aliyun-lzhpo-ecs ~]# docker run --name redis -d -p 6379:6379 f7302e4ab3a8
69694881429c130ba5519827b6789a5b2be87f83a580030e5e9fd36c2de2a544

同样的,还是要去阿里云的控制台开放6379端口安全组:

连接成功:

本文目录