三、环境搭建2、在linux上安装docker docker是一种虚拟化容器技术,它基于镜像(自带镜像站docker hub)来启动各种容器,每一个容器都是一个完整的运行环境,容器之间相互隔离。安装步骤:1)进入docker官网,依次选择“resources”–>“Docs”–>“Get Docker”,然后按照下图所示从上往下依次点击,就进入了官方安装文档。2)根据文档,复制相应的命令到终端执行: #卸载系统之前的docker (如果有的话)另外sudo命令是防止非root用户权限不够
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 最新的官网文档和视频老版不全一样
sudo yum install -y yum-utils
# 配置镜像
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
# 启动docker
sudo systemctl start docker
# 设置开机自启动,以后就不用手动启动了
sudo systemctl enable docker
docker -v #查看docker版本
sudo docker images #查看docker容器的资源
# 配置镜像加速,因为docker是国外网站,所以最好从国内镜像站获取资源,
#如阿里云(https://cr.console.aliyun.com/cn-qingdao/instances/mirrors),配置命令赋值如下:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://chqac97z.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
#安装且配置完毕3、docker安装mysql和rabbitmq1、docker安装mysql#从docker下载需要的资源,命令格式如下,冒号后面的需要和镜像站的标签一致
sudo docker pull mysql:5.7
sudo docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
# --name指定容器名字
#-v目录挂载
#-p指定端口映射 此处将容器的3306端口映射到主机的3306端口
#-e设置mysql参数 此处设置进入mysqlroot用户的密码为root
#-d后台运行
#开启,关闭指令
docker start mysql
docker stop mysql
设置docker容器中的服务开机自启动
语法:docker update 容器名/容器id --restart=always
docker update mysql --restart=always在mydata/mysql/conf目录下的my.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
skip-name-resolve
2、docker安装rabbitmq1、拉取镜像
sudo docker pull rabbitmq:management
2、运行rabbitmq
docker run -d --hostname rabbitmq --name rabbitmq -v /mydata/rabbitmq/rabbitmq01:/var/lib/rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq:management
3、rabbitmq的访问端口是:15672 访问地址:http://虚拟机ip:15672
4、初始密码是 guest/guest
5、设置容器自启动:docker update rabbitmq --restart=always
4、rabbitmq主从复制配置和镜像集群配置sudo docker pull rabbitmq:management
mkdir /mydata/rabbitmq
cd rabbitmq/
mkdir rabbitmq01 rabbitmq02 rabbitmq03
docker run -d --hostname rabbitmq01 --name rabbitmq01 -v /mydata/rabbitmq/rabbitmq01:/var/lib/rabbitmq -p 15673:15672 -p 5673:5672 -e RABBITMQ_ERLANG_COOKIE='ittx' rabbitmq:management
docker run -d --hostname rabbitmq02 --name rabbitmq02 -v /mydata/rabbitmq/rabbitmq02:/var/lib/rabbitmq -p 15674:15672 -p 5674:5672 -e RABBITMQ_ERLANG_COOKIE='ittx' --link rabbitmq01:rabbitmq01 rabbitmq:management
docker run -d --hostname rabbitmq03 --name rabbitmq03 -v /mydata/rabbitmq/rabbitmq03:/var/lib/rabbitmq -p 15675:15672 -p 5675:5672 -e RABBITMQ_ERLANG_COOKIE='ittx' --link rabbitmq01:rabbitmq01 --link rabbitmq02:rabbitmq02 rabbitmq:management
#主节点
docker exec -it rabbitmq01 bin/bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
exit
#第二个节点
docker exec -it rabbitmq02 bin/bash
rabbitmqctl stop_app
rabbitmqctl reset
#将第二个节点加入到主节点
rabbitmqctl join_cluster --ram rabbit@rabbitmq01
rabbitmqctl start_app
exit
#第三个节点
docker exec -it rabbitmq03 /bin/bash
rabbitmqctl stop_app
rabbitmqctl reset
#将第二个节点加入到主节点
rabbitmqctl join_cluster --ram rabbit@rabbitmq01
rabbitmqctl start_app
exit
#实现镜像集群
docker exec -it rabbitmq01 bash
#设置策略 (/ 虚拟主机) (ha 策略名称) ("^" 表示所有,配置/虚拟机下的所有队列)
ha-mode:镜像队列提供了三种模式:
all:全部的节点队列都做镜像;
exactly:指定镜像队列的节点最高镜像数量;
nodes:只为指定具体节点配置镜像队列;
ha-sync-mode :节点之前的同步模式。有自动和手动两种,默认是手动,这里设置为自动。
rabbitmqctl set_policy -p / ha "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
|