手把手教授女朋友在Docker部署MySQL、Redis、RabbitMQ

1.CentOS7.X下的Docker安装

1.1查看内核版本

Docker要求内核版本在3.10以上。

uname -a
# Linux iZrek5rpbgrl7jZ 3.10.0-1062.18.1.el7.x86_64 #1 SMP Tue Mar 17 23:49:17 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
# 俺这里是3.10.0版本

1.2安装Docker

yum install docker
# 通过docker -v查看docker的版本。
docker -v
# Docker version 1.13.1, build cccb291/1.13.1
# 设置docker开机自启动
systemctl enable docker

1.3Docker镜像加速器

国内从DockerHub拉取镜像的速度会比较慢,此时可以配置镜像加速器。

网易:https://hub-mirror.c.163.com/

阿里云:https://<你的ID>.mirror.aliyuncs.com

七牛云加速器:https://reg-mirror.qiniu.com

# 编辑daemon.json配置镜像
vim /etc/docker/daemon.json 
# 可配置多个镜像
# 按i进入编辑模式,编写完成后,按ESC退出编辑模式,输入 :wq 保存并退出
{
        "registry-mirrors": ["https://hub-mirror.c.163.com"]
}
# 设置完成后,重新启动服务
[root@iZrek5rpbgrl7jZ /]# systemctl daemon-reload
[root@iZrek5rpbgrl7jZ /]# systemctl restart docker

2.安装MySQL镜像

2.1获取镜像

2.1.1可以到Docker Hub网站搜索镜像。

进入官网即可搜索你想要的镜像

在这里插入图片描述

Tags为该镜像的所有可下载的版本,右边是下载镜像对应版本的命令
若要下载最新版本,可将:latest省略

在这里插入图片描述

2.1.2通过命令搜索镜像

[root@iZrek5rpbgrl7jZ ~]# docker search mysql

INDEX       NAME                                        DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/mysql                             MySQL is a widely used, open-source relati...   9429      [OK]       
docker.io   docker.io/mariadb                           MariaDB is a community-developed fork of M...   3396      [OK]       
docker.io   docker.io/mysql/mysql-server                Optimized MySQL Server Docker images. Crea...   690                  [OK]
docker.io   docker.io/centos/mysql-57-centos7           MySQL 5.7 SQL database server                   74                   
docker.io   docker.io/mysql/mysql-cluster               Experimental MySQL Cluster Docker images. ...   66                   
docker.io   docker.io/centurylink/mysql                 Image containing mysql. Optimized to be li...   61                   [OK]
docker.io   docker.io/deitch/mysql-backup               REPLACED! Please use http://hub.docker.com...   41                   [OK]
docker.io   docker.io/bitnami/mysql                     Bitnami MySQL Docker Image                      39                   [OK]

# NAME:镜像名称  
# DESCRIPTION:镜像的描述信息 
# STARS:类似 Github 里面的 star,表示点赞、喜欢的意思
# OFFICIAL:[OK]代表官方 
# AUTOMATED:自动构建

下载MySQL镜像

# 省略版本号时,表示下载最新版本
[root@iZrek5rpbgrl7jZ ~]# docker pull mysql
# 下载MySQL5.7
[root@iZrek5rpbgrl7jZ ~]# docker pull mysql:5.7

2.2查看已经下载好的镜像

[root@iZrek5rpbgrl7jZ ~]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
docker.io/rabbitmq   latest              c1a845de8052        34 hours ago        151 MB
docker.io/mysql      5.7                 f965319e89de        35 hours ago        448 MB
docker.io/redis      latest              a4d3716dbb72        5 days ago          98.3 MB
# 我这里已经提前下载好了rabbitmq、mysql以及redis镜像

2.3容器使用

2.3.1启动容器

[root@iZrek5rpbgrl7jZ ~]# docker run -p 3306:3306 --name test-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

# 参数说明
# -p:端口映射,如果没有做端口映射,宿主机是访问不了的
# --name:容器名称,随便起
# -e:设置的参数,MYSQL_ROOT_PASSWORD设置MySQL的密码(必须!!!)
# -d:后台运行
# mysql:5.7 所使用的镜像以及版本
# 使用docker ps -a查看拥有的所有容器
[root@iZrek5rpbgrl7jZ ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                   PORTS                               NAMES
ddb603ad7541        mysql:5.7           "docker-entrypoint..."   4 minutes ago       Up 4 minutes             0.0.0.0:3306->3306/tcp, 33060/tcp   test-mysql
c9e3ed91eb21        redis               "docker-entrypoint..."   3 hours ago         Exited (0) 3 hours ago                                       miaosha-redis
75954f6b1911        rabbitmq            "docker-entrypoint..."   4 hours ago         Exited (0) 3 hours ago                                       miaosha-rabbitmq
60cb70ce1644        mysql:5.7           "docker-entrypoint..."   4 hours ago         Exited (0) 3 hours ago                                       miaosha-mysql

# 此时通过 STATUS 可以发现,test-mysql已经上线
# 使用docker ps查看已经启动的容器
[root@iZrek5rpbgrl7jZ ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
ddb603ad7541        mysql:5.7           "docker-entrypoint..."   4 minutes ago       Up 4 minutes        0.0.0.0:3306->3306/tcp, 33060/tcp   test-mysql

2.3.2停止已经启动的容器

# 两种方式
# 1.容器名称
[root@iZrek5rpbgrl7jZ ~]# docker stop test-mysql
# 2.容器的ID
[root@iZrek5rpbgrl7jZ ~]# docker stop ddb603ad7541

2.3.3启动已经停止的容器

# 同上,启动容器也有两种方式
[root@iZrek5rpbgrl7jZ ~]# docker start test-mysql

[root@iZrek5rpbgrl7jZ ~]# docker start ddb603ad7541

2.3.4删除容器

# 删除前必须将运行中的容器停止
[root@iZrek5rpbgrl7jZ ~]# docker rm test-mysql

2.3.5删除镜像

[root@iZrek5rpbgrl7jZ ~]# docker rmi mysql:5.7

3.安装Redis镜像

3.1查询Redis镜像

[root@iZrek5rpbgrl7jZ ~]# docker search redis
INDEX       NAME                                       DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/redis                            Redis is an open source key-value store th...   8085      [OK]       
docker.io   docker.io/bitnami/redis                    Bitnami Redis Docker Image                      143                  [OK]
docker.io   docker.io/sameersbn/redis                                                                  79                   [OK]
docker.io   docker.io/grokzen/redis-cluster            Redis cluster 3.0, 3.2, 4.0 & 5.0               67                   
docker.io   docker.io/rediscommander/redis-commander   Alpine image for redis-commander - Redis m...   38                   [OK]

3.2拉取镜像

# 这里默认最新版本
[root@iZrek5rpbgrl7jZ ~]# docker pull redis

3.3启动Redis容器

3.1下载Redis配置文件

老铁们,把泪目刷在公屏上!!!:redis.conf

3.2修改配置文件

可先在本机修改

bind 127.0.0.1改为 bind 0.0.0.0 或者 在前面加个#注释掉即可(# bind 127.0.0.1)
protected-mode no  //关闭保护模式
appendonly yes     //持久化

3.3启动

[root@iZrek5rpbgrl7jZ]# docker run -p 6379:6379 --name test-redis -v /usr/local/docker/redis/redis.conf -d redis redis-server /usr/local/docker/redis/redis.conf

# 参数说明:
# 1.-v /usr/local/docker/redis/redis.conf : docker的redis镜像默认无配置文件。我将配置文件redis.conf放在了/usr/local/docker/redis中,然后该操作会将宿主机的配置文件复制到docker中
# 2.redis-server /usr/local/docker/redis/redis.conf : redis将以该路径下的配置文件启动

4.安装RabbitMQ镜像

4.1搜索RabbitMQ镜像

[root@iZrek5rpbgrl7jZ ~]# docker search rabbitmq

4.2拉取镜像

[root@iZrek5rpbgrl7jZ ~]# docker pull rabbitmq

4.3启动

# 默认用户名为guest,密码也是guest
[root@iZrek5rpbgrl7jZ ~]# docker run -p 15672:15672 -p 5672:5672 --name test-rabbitmq -d rabbitmq

# 设置用户名、密码
[root@iZrek5rpbgrl7jZ ~]# docker run -p 15672:15672 -p 5672:5672 --name test-rabbitmq -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password -d rabbitmq

这时候你就可以…还没呢~

# 安装rabbitmq管理界面插件
[root@iZrek5rpbgrl7jZ ~]# rabbitmq-plugins enable rabbitmq_management

现在你可以随便玩了

啊~ 大脑里的知识一直在溢出~

得再说点什么

怎么进入MySQL容器的命令行呢???

[root@iZrek5rpbgrl7jZ ~]# docker exec -it test-mysql bash
root@60cb70ce1644:/# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.30 MySQL Community Server (GPL)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

进入redis同理,先进入redis容器的bash

docker exec -it test-redis bash

然后键入命令 redis-cli 进入客户端,就可以随便玩了。

完了!!!怎么退出bash。。。难受~
没事,身为一个一直被饭堂阿姨喊靓仔的我,有办法!!!

1.Ctrl+p+q # 退出并在后台运行容器
2.Ctrl+d   # 退出并停止容器

我使用的是阿里云的服务器,如果想要在宿主机访问到对应的容器,
一定要配置安全组,打开端口!!!
一定要配置安全组,打开端口!!!
一定要配置安全组,打开端口!!!

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值