深网网站,安卓优化大师,建行信用卡网站官网入口,医院男性男科1.去rabbitMQ官网拉去images 我当前使用的是最新版本的镜像#xff1a;rabbitmq:3.12-management 2.创建一个集群专用网络 docker的容器相互隔离是不可通信的#xff0c;我们自行创建一个网络后#xff0c;创建容器时 给他们放在一起#xff0c;就可以通信了。 docker netw…1.去rabbitMQ官网拉去images 我当前使用的是最新版本的镜像rabbitmq:3.12-management 2.创建一个集群专用网络 docker的容器相互隔离是不可通信的我们自行创建一个网络后创建容器时 给他们放在一起就可以通信了。 docker network create rabbit-net --driver bridge我们的网卡名称为rabbit-net
3.构建出三个实例 我们在做容器时候run后面参数依次简单说明一下 -name 镜像名称 –hostname 修改主机名 -v 做了宿主机与容器文件映射 -p 做了端口通信 –network 把这几个节点放到同一个网卡上 -d 让容器后台执行 选择镜像版本号 node01
docker run --name rabbit01 --hostnamenode01 \
-v /mydata/rabbitMQ/node01:/var/lib/rabbitmq \
-p 5672:5672 \
-p 15672:15672 \
--network rabbit-net \
-d \
rabbitmq:3.12-managementnode02
docker run --name rabbit02 --hostnamenode02 \
-v /mydata/rabbitMQ/node02:/var/lib/rabbitmq \
-p 5673:5672 \
-p 15673:15672 \
--network rabbit-net \
-d \
rabbitmq:3.12-managementnode03
docker run --name rabbit03 --hostnamenode03 \
-v /mydata/rabbitMQ/node03:/var/lib/rabbitmq \
-p 5674:5672 \
-p 15674:15672 \
--network rabbit-net \
-d \
rabbitmq:3.12-management4.修改各个容器的cookie CLI如何验证节点Erlang Cookie RabbitMQ节点和 CLI 工具例如rabbitmqctl使用cookie来确定是否允许它们相互通信。 为了使两个节点能够通信它们必须具有相同的共享密钥称为 Erlang cookie。cookie 只是一串最多 255 个字符的字母数字字符。 每个集群节点都必须有相同的cookie。 下面将统一使用node01的cookie以保证每个节点有相同的cookie。
[rootlocalhost node01]# cat .erlang.cookie
QLPBURUFDGAORQHBQXIB
[rootlocalhost node02]# cat .erlang.cookie
UJJVRAMWCGUDWFMUVZSK
[rootlocalhost node03]# cat .erlang.cookie
QRMWUHLBULEHAYJNKPXZNode01的cookieQLPBURUFDGAORQHBQXIB 把rabbit01容器中的/var/lib/rabbitmq/.erlang.cookie复制给rabbit02 rabbit03 由于我们已经做了宿主机与容器的文件映射这里直接从宿主机网rabbit02 rabbit03即可 [rootlocalhost]# docker cp /mydata/rabbitMQ/node01/.erlang.cookie rabbit02:/var/lib/rabbitmq/
Preparing to copy...
Copying to container - 2.048kB
Successfully copied 2.048kB to rabbit02:/var/lib/rabbitmq/
[rootlocalhost]# docker cp /mydata/rabbitMQ/node01/.erlang.cookie rabbit03:/var/lib/rabbitmq/
Preparing to copy...
Copying to container - 2.048kB
Successfully copied 2.048kB to rabbit03:/var/lib/rabbitmq/分别在宿主机node02 node03查看cookie文件
[rootlocalhost node02]# cat .erlang.cookie
QLPBURUFDGAORQHBQXIB[rootlocalhost node02]#
[rootlocalhost node03]# cat .erlang.cookie
QLPBURUFDGAORQHBQXIB[rootlocalhost node03]# Node02 node03都变成了QLPBURUFDGAORQHBQXIB 给node02 node03 节点重启 是他们cookie生效
[rootlocalhost]# docker restart rabbit02
rabbit02
[rootlocalhost]# docker restart rabbit03
rabbit035.容器相互挂接
rabbit01 - rabbit02 - rabbit03 我们这里 让rabbit01当做主节点 rabbit02挂到rabbit01上 rabbit03挂到rabbit02上 rabbit01操作步骤 1.进入容器docker exec -it rabbit01 bash 2.只关闭rabbitmq服务rabbitmqctl stop_apprabbitmqctl stop 会将 Erlang 虚拟机关闭rabbitmqctl stop_app只关闭RabbitMQ 服务 3.重置这个节点rabbitmqctl reset 4.启动服务rabbitmqctl start_app 5. exit [rootlocalhost]# docker exec -it rabbit01 bash
rootnode01:/# rabbitmqctl stop_app
Stopping rabbit application on node rabbitnode01 ...
rootnode01:/# rabbitmqctl reset
Resetting node rabbitnode01 ...
rootnode01:/# rabbitmqctl start_app
Starting node rabbitnode01 ...
rootnode01:/# exit
exitrabbit02操作步骤 1.进入容器docker exec -it rabbit02 bash 2.只关闭rabbitmq服务rabbitmqctl stop_apprabbitmqctl stop 会将 Erlang 虚拟机关闭rabbitmqctl stop_app只关闭RabbitMQ 服务 3.重置这个节点rabbitmqctl reset 4.加入节点rabbit01rabbitmqctl join_cluster rabbitnode01 5.启动服务rabbitmqctl start_app 6. exit [rootlocalhost rabbitMQ]# docker exec -it rabbit02 bash
rootnode02:/# rabbitmqctl stop_app
Stopping rabbit application on node rabbitnode02 ...
rootnode02:/# rabbitmqctl reset
Resetting node rabbitnode02 ...
rootnode02:/# rabbitmqctl join_cluster rabbitnode01
Clustering node rabbitnode02 with rabbitnode01
rootnode02:/# rabbitmqctl start_app
Starting node rabbitnode02 ...
rootnode02:/# exit
exit
rabbit03步骤 1.进入容器docker exec -it rabbit03 bash 2.只关闭rabbitmq服务rabbitmqctl stop_apprabbitmqctl stop 会将 Erlang 虚拟机关闭rabbitmqctl stop_app只关闭RabbitMQ 服务 3.重置这个节点rabbitmqctl reset 4.加入节点rabbit02rabbitmqctl join_cluster rabbitnode02 5.启动服务rabbitmqctl start_app 6. exit [rootlocalhost]# docker exec -it rabbit03 bash
rootnode03:/# rabbitmqctl stop_app
Stopping rabbit application on node rabbitnode03 ...
rootnode03:/# rabbitmqctl reset
Resetting node rabbitnode03 ...
rootnode03:/# rabbitmqctl join_cluster rabbitnode02
Clustering node rabbitnode03 with rabbitnode02
rootnode03:/# rabbitmqctl start_app
Starting node rabbitnode03 ...
rootnode03:/# exit
exit至此我们操作完成了 然后随便登录一个节点 看看我们的成果