基於docker搭建consul集群

2021-09-24 05:06:07 字數 2709 閱讀 9581

1.dokcerfile建立相應映象

from  centos

#配置環境變數consul版本

env consul_version=1.0.6

env hashicorp_releases=

#新增consul使用者跟使用者組

run groupadd consul && \

useradd -g consul consul

#安裝consul

run yum upgrade -y && \

yum install -y net-tools && \

yum install -y firewalld firewalld-config && \

yum install -y wget && \

yum install -y unzip && \

wget $/consul/$/consul_$_linux_amd64.zip && \

unzip consul_$_linux_amd64.zip && \

rm -rf consul_$_linux_amd64.zip && \

mv consul /usr/local/bin

run mkdir -p /consul/data && \

chown -r consul:consul /consul

volume /consul/data

#開放埠

expose 8300

expose 8301 8301/udp 8302 8302/udp

expose 8500 8600 8600/udp

在dockerfile目錄 執行下面**,注意後面上下文點號

docker build -t counsl  .

2.建立子網路並規劃ip

docker network create  --subnet=192.168.2.0/24  consulnetwork

容器名稱

容器ip位址

node1

192.168.2.2

node2

192.168.2.3

node3

192.168.2.4

3.分別建立三個容器  -p使用dockerfile的埠對映

docker run -itd --name consul1  --network mynetwork  -p --ip 192.168.2.2 consul

docker run -itd --name consul2  --network mynetwork -p --ip  192.168.2.3   consul

docker run -itd --name consul3  --network  mynetwork  -p  --ip 192.168.2.4   consul

4.進入容器

docker exec -it consul1  /bin/bash

5.進入三個不同容器分別啟動

consul agent -server -ui -node=server1  -bootstrap-expect=3  -bind=192.168.2.2 -data-dir /consul/data -join=192.168.2.2 -client 0.0.0.0

consul agent -server -ui -node=server2 -bootstrap-expect=3 -bind=192.168.2.3 -data-dir /consul/data -join=192.168.2.2 -client 0.0.0.0

consul agent -server -ui -node=server3 -bootstrap-expect=3 -bind=192.168.2.4 -data-dir /consul/data -join=192.168.2.2 -client 0.0.0.0

agent   **模式 -server  表示啟動的是乙個服務 -client  啟動客戶端

-bootstrap-expect 3 表示等待多少個節點再啟動,這裡3個,3個一起啟動

-node=server1 就是給consul服務起個別名為server1

-bind=192.168.2.2  繫結內網ip

-data-dir /opt/data1 資料儲存目錄為/opt/data1

-ui 啟動預設ui介面

-client  consul繫結在哪個client位址上,這個位址提供http、dns、rpc等服務,預設是127.0.0.1,可指定允許客戶端使用什麼ip去訪問

6訪問宿主機對應對映到docker容器的8500埠檢視資訊 我的是 0.0.0.0:32769->8500/tcp

7.獲取健康的服務

api:/v1/health/service/

$servicelist = $this->curl_request($url, 'get');

$servicelist=json_decode($servicelist, true);

$address=;

foreach ($servicelist as $k=>$v)}}

SpringCloud 多機搭建Consul集群

搭建環境 linux centos 7 consul 1.8.6 一 在三颱linux主機上分別上傳並解壓consul安裝包 consul 1.8.6 linux amd64.zip 為安裝包,使用unzip consul 1.8.6 linux amd64.zip 命令進行解壓,consul 為解...

基於docker搭建rabbitmq

前提是安裝了docker的環境,這個我之前的文章中有。安裝rabbitmq的步驟和其他的軟體在docker中安裝步驟類似 1 找到映象中心 2 根據要求 找到指定的版本 tag 我這裡是使用的七牛的映象位址,然後使用的3.7 manager 的乙個版本 3 使用指令拉取image 映象檔案到伺服器 ...

基於docker搭建Samba

1.查詢映象 docker search samba2.拉取映象 docker pull dperson samba3.在本地建立個目錄,以便於容器掛載 mkdir datadchmod 777 data不修改的話連線進去會提示沒有許可權寫入資料 4.啟動映象 docker run it name ...