安裝過程
詳細步驟如下:
首先拉取Consul
的Docker
鏡像:
docker pull hashicorp/consul:1.18.1
創建Consul
的配置文件和數據目錄:
mkdir -p /srv/docker/consul/data
mkdir -p /srv/docker/consul/config
在config
目錄下創建一個config.json
配置文件:
vim /srv/docker/consul/config/config.json
在該文件中寫入以下內容:
{"datacenter": "dc1","node_name": "consul-node","server": true,"bootstrap_expect": 1,"data_dir": "/consul/data","log_level": "INFO","client_addr": "0.0.0.0","bind_addr": "0.0.0.0","ui": true
}
上面JSON
中的字段內容含義詳解:
datacenter
:定義當前節點的數據中心名稱,用于隔離服務發現和分布式操作。名稱可自定義,如dc1
、us-west
等。node_name
:指定節點名稱,用于標識當前節點,必須在整個集群中唯一。如果未設置,Consul
會生成一個隨機名稱。server
:指示當前節點是否為Consul
服務器節點。Consul
服務器節點負責存儲集群狀態和數據,并參與選舉。bootstrap_expect
:定義服務器節點的預期數量,用于初始化集群。例如,設置為3
時,至少需要3
個服務器節點完成啟動。data_dir
:指定數據存儲目錄。用于持久化存儲Consul
的數據,如狀態信息、快照和事務日志。log_level
:設置日志級別。可選值:DEBUG
、INFO
、WARN
、ERR
等。client_addr
:定義客戶端可訪問的監聽地址。0.0.0.0
表示監聽所有網絡接口地址。可以根據需求改為特定的IP
。bind_addr
:設置Consul
節點的綁定地址。單機部署(如開發測試)可使用環回地址或綁定到所有接口。ui
:啟用Consul
的內置Web UI
。設為true
后,Consul
會開放Web UI
界面,默認在8500
端口提供訪問。
接下來,使用下面命令啟動Consul
容器:
docker run -d \--name=consul \--restart=always \-p 8500:8500 \-p 8600:8600/udp \-v /srv/docker/consul/data:/consul/data \-v /srv/docker/consul/config:/consul/config \hashicorp/consul:1.18.1 \agent -config-dir=/consul/config
這里開啟了8500
和8600
端口:8500
映射Consul
的Web UI
和API
,支持用戶通過瀏覽器訪問控制臺或調用API
;8600
映射DNS
接口,提供服務發現的DNS
查詢功能。使用8600/udp
進行端口暴露,是因為默認情況下DNS
查詢使用UDP
協議,如果不顯式聲明UDP
協議,Docker
默認會只暴露TCP
,導致應用無法通過UDP
協議進行DNS
查詢。
agent -config-dir=/consul/config
這一句指明使用容器內的配置文件啟動Consul
代理。
容器啟動完成后,使用下面的地址訪問Consul
的Web UI
頁面:
http://<ip_address>:8500
出現如下頁面,代表容器啟動成功:
上述配置為單節點Consul
,如需部署多節點集群,可根據需要進行配置。具體步驟將在使用時整理。
The end.