在centos7下安装rabbitmq以及mysql

因为之前的知识点所涉及到中间件的使用,这些中间件也是放在服务器当中的。博主最近也在一直搞中间件的安装,因为直接通过yum安装一直出错,搞了很久很久,今天才发现用docker进行安装是如此简单,当然,docker我也是刚刚接触,也不是很了解,只是发现按照教程安装相应的东西相对简单,所以在这里记录一下如何在centos7安装mysql以及rabbitmq

一、安装docker

一般centos7里面是不会自己带有docker的(除非你以前安装过),需要自己安装docker。
步骤:
1、查看你当前版本的内核:
uname -r

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker

2、安装docker:
yum -y install docker
3、启动 Docker 后台服务
service docker start
4、测试运行 hello-world,由于本地没有hello-world这个镜像,所以会下载一个hello-world的镜像,并在容器内运行
docker run hello-word

就这样,你的docker就安装完毕了。

注:有的时候,当你执行docker命令时会出现:Cannot connect to the Docker daemon.
这是你忘记启动docker这个服务了,此时执行:
service docker start命令就ok了。

二、安装mysql

1、拉取mysql镜像
docker pull mysql:5.6

2、查看mysql镜像
docker image ls
3、运行mysql
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306 --restart=always mysql:5.6

以上参数的含义:
-name mysql将容器名命名为mysql,后面可以用这个name进行容器的启动暂停操作
-e MYSQL_ROOT_PASSWORD=123456 设置MySQL密码为123456
-d 此容器在后台运行,并且返回容器的ID
-i 以交互模式运行容器
-p 进行端口映射,格式为主机(宿主)端口:容器端口
–restart=always 当docker重启时,该容器自动重启

4、进入mysql容器:
docker exec -ti mysql bash
在这里插入图片描述
到此,mysql安装完毕,此时可以通过navicat进行远程连接,用户名:root,密码:123456
此部分参考基于docker安装mysql

5、修改默认的mysql编码,默认刚创建的mysql编码不是utf8,要修改为utf8,首先进入docker中的mysql容器,进入/etc/mysql/conf.d修改mysql.cnf文件

cd /etc/mysql/conf.d/

然后vim mysql.cnf
注意:此时可能会出现vim: command not found,运行apt-get install vim命令时,提示:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package vim

这时候需要敲:apt-get update,这个命令的作用是:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。

等更新完毕以后再敲命令:apt-get install vim命令即可。

在mysql.cnf中添加如下配置

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

保存后退出

6、重启mysql镜像,运行命令==docker restart mysql(或者机器号)==就大功告成了

参考:docker安装MySql,并修改数据库的默认字符集
docker容器中安装vim

三、安装rabbitmq

1、查询rabbitmq镜像:
docker search rabbitmq:management
2、拉去rabbitmq镜像
docker pull rabbitmq:management
3、创建和启动容器
docker run -d --hostname my-rabbit --name rabbit -p 8080:15672 rabbitmq:management

  其中:使用此命令只会在将15672映射到本地端口(即通过远程可以访问),至于消息队列的使用端口5672则不会被映射到本地窗口,通过远程来访问这个端口是连接不上的!!!!

–hostname:指定容器主机名称
–name:指定容器名称
-p:将mq端口号映射到本地

3.2、也可以使用下面方法创建和启动容器,并指定用户名和密码
docker run -d --hostname my-rabbit --name rabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management

15672:控制台端口号
5672:应用访问端口号

4、此时,rabbitmq安装完毕,此时可以通过域名访问,通过第一种方式运行的,账号和密码都为guest
在这里插入图片描述

四、补充

当docker容器中已经存在某个镜像时,你在安装是会报错的,此时你又要启动相关服务,可以通过如下命令
1、首先查看docker容器

  • docker ps: 查看当前运行的容器

  • docker ps -a:查看所有容器,包括停止的。
    在这里插入图片描述
    2、找到对应服务的container id(容器唯一的表示id)
    3、启动

  • 容器名:docker start docker_run,

  • 或者ID:docker start 43e3fef2266c。

3、终止

  • docker stop [NAME]/[CONTAINER ID]:将容器退出。
  • docker kill [NAME]/[CONTAINER ID]:强制停止一个容器。

4、删除

  • docker rm [NAME]/[CONTAINER ID]:不能够删除一个正在运行的容器,会报错。需要先停止容器。

此部分关于docker操作可以参考docker实践操作

五、补充二

在启动docker时,执行service docker start时,可能会报如下错误:

Redirecting to /bin/systemctl start  docker.service
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

根据提示的命令,查询systemctl status docker.service之后显示如下错误

 docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Mon 2019-09-23 23:39:51 CST; 13s ago
     Docs: http://docs.docker.com
  Process: 12740 ExecStart=/usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-current --init-path=/usr/libexec/docker/docker-init-current --seccomp-profile=/etc/docker/seccomp.json $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $ADD_REGISTRY $BLOCK_REGISTRY $INSECURE_REGISTRY $REGISTRIES (code=exited, status=1/FAILURE)
 Main PID: 12740 (code=exited, status=1/FAILURE)

Sep 23 23:39:49 iz2zef5dsyzzjev0vsznm2z systemd[1]: Starting Docker Application Container Engine...
Sep 23 23:39:49 iz2zef5dsyzzjev0vsznm2z dockerd-current[12740]: time="2019-09-23T23:39:49.808137543+08:00" level=warning msg="could n...ound"
Sep 23 23:39:49 iz2zef5dsyzzjev0vsznm2z dockerd-current[12740]: time="2019-09-23T23:39:49.819174986+08:00" level=info msg="libcontain...2745"
Sep 23 23:39:51 iz2zef5dsyzzjev0vsznm2z dockerd-current[12740]: Error starting daemon: SELinux is not supported with the overlay2 gra...alse)
Sep 23 23:39:51 iz2zef5dsyzzjev0vsznm2z systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
Sep 23 23:39:51 iz2zef5dsyzzjev0vsznm2z systemd[1]: Failed to start Docker Application Container Engine.
Sep 23 23:39:51 iz2zef5dsyzzjev0vsznm2z systemd[1]: Unit docker.service entered failed state.
Sep 23 23:39:51 iz2zef5dsyzzjev0vsznm2z systemd[1]: docker.service failed.
Hint: Some lines were ellipsized, use -l to show in full

在这里插入图片描述
具体说的是因为此处意思是linux的内核中的SELinux不支持 overlay2 graph driver ,解决方法有两个,要么启动一个新内核,要么就在docker里禁用selinux,–selinux-enabled=false,

解决办法为:

1.rm -rf /var/lib/docker/ #如果不删除这个文件夹可能会导致继续失败
 
2.vi /etc/sysconfig/docker

执行第一个可能会提示Device or resource busy,具体什么原因自行百度,我是跳过第一句之后执行第二个,修改文件
在这里插入图片描述
之后就启动成功。
此处参考了大佬的文章docker启动失败解决,需要详细的请找这位大佬。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值