Go語言:Docker安裝及運行consul節點
原標題:Go語言:Docker安裝及運行consul節點
搭建集羣
在真實的生產環境中,需要真實的部署consul集羣。在一臺機器上想要模擬多臺集羣部署的效果,有兩種方案:一種是藉助虛擬機,另一種是藉助容器技術。
在本系列課程中,使用後者容器技術來實現集羣的搭建。
Docker簡介
Docker是一個開源的應用容器引擎,基於Go語言並遵從Apache2.0協議開源。
Docker可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後發佈到任何流行的Linux機器上,也可以實現虛擬化。
容器是完全使用沙箱機制,相互之間不會有任何的接口,更重要的是容器性能開銷很低。
Docker安裝
1、Windows系統下安裝
window系統下的安裝可以參考如下的鏈接文檔:https://www.runoob.com/docker/windows-docker-install.html
可以按照如上的鏈接在window系統下安裝Docker。
2、MacOS系統下安裝
MacOS系統下的安裝,有兩種方式。同樣可以參考如下鏈接:https://www.runoob.com/docker/macos-docker-install.html
Docker測試
Docker安裝完成以後,可以進行測試。可以通過終端命令的形式查看Docker是否安裝成功:
docker version
Docker中安裝consul
Docker僅僅是一個容器,是搭建集羣的一個環境。如果想要搭建多個集羣,還必須安裝consul環境。Docker中安裝consul環境,可以使用指令實現。Docker安裝consul指令如下:
- docker search
docker search consul
使用如上命令查看consul的鏡像文件,在終端輸出如下所示內容:
- docker pull
docker pull consul
通過search查詢了consul鏡像的相關內容後,可以使用如上的docker pull命令安裝consul環境。
檢驗Docker安裝Consul成功
在Docker中安裝consul可以,可以通過如下命令查看docker中安裝consul是否成功:
docker images
或者
docker run consul version
Docker中啓動一個單獨節點consul agent
Docker中安裝好了consul以後,首先嚐試啓動一個server節點,可以通過如下命令來啓動docker中的單個節點:
$ docker run -p 8400:8400 -p 8500:8500 -p 8600:53/udp -h node1 consul -server -bootstrap
如上的命令中,參數說明如下: * 暴露了三個端口,分別是: * RPC端口:8400 * HTTP端口:8500 * DNS端口:8600
- -h:對應的node1爲節點的名稱
- -server:表示啓動的節點類型爲server類型
- -bootstrap:表示自動引導選舉,用於server節點選舉leader的參數
在暴露的三個端口中,還對應的映射到了主機的端口上,因此,我們可以通過在主機中訪問server的信息。比如:
- curl訪問HTTP接口: curl localhost:8500/v1/catalog/nodes
- dig來和DNS接口進行交互:
- dig @0.0.0.0 -p 8600 node1.node.consul
另外,我們還可以瀏覽器來進行訪問,在主機的瀏覽器中鍵入:http://127.0.0.1:8500 進行訪問,可以查看到server節點的相關信息。
- 宿主機上查看節點數量 在宿主機上已經安裝了Consul, 可以用命令行來和容器裏的Consul Agent進行交互:
consul members