Ubuntu下部署Portainer管理docker


在上一篇文章中,我們部署了Shipyard來管理docker集群,總體比較簡單,而且Shipyard界面風格很簡約,還是比較喜歡的,但是正如提出的node節點無法顯示bug,以及該項目早已停止維護,讓我不得不在另尋可靠的工具。搜索發現,Portainer是一個輕量級的管理工具,很符合的要求。

首先,我們還是要安裝docker,這一步不再贅述。然后按以下步驟安裝Portainer,非常簡單。

主節點

安裝swarm

docker pull swarm

# 創建集群
docker swarm init --advertise-addr <MANAGER-IP>

這一步完成時顯示如下:

它顯示了加入工作節點的辦法。到這里,主節點就配置完成,它會默認加入本地節點。

部署Portainer

sudo docker service create \
         --name portainer \
         --publish 9000:9000 \
         --constraint 'node.role == manager' \
         --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
         portainer/portainer \
         -H unix:///var/run/docker.sock

工作節點

工作節點就按照上一步中給出的辦法,加入新節點:

sudo docker swarm join --token SWMTKN-1-4zzd3zwswlix4hmxf68byzf3bds5sed2qtqgm1uao9g48tge61-9hu7w2cle8ic55ntnmqlzwuoi 192.168.56.103:2377


PS:注意,加入新的manager節點和worker節點都是相同的命令,但是token不一樣。可以通過命令查詢token:

docker swarm join-token worker/manager

如果想舊令牌無效並生成新令牌:

docker swarm join-token --rotate

這時在主節點上就可以看到各個節點的信息:

WEB訪問

默認對外曝露9000端口,因此你只需訪問http://<MANAGER-IP>:9000 就能夠訪問web端頁面。第一次訪問需要你創建用戶和密碼。

總體看,配置非常簡單,而且占用的資源非常少。


其實按照創建服務的方法來部署Portainer會存在一個問題就是,它每次重啟都會重新掛載一個臨時目錄,導致需要重復配置賬號。為了解決這個問題,也為了能夠同時監控多個集群,我們換一種方式。

首先需要曝露docker的2375端口:

# 備份
sudo cp /lib/systemd/system/docker.service /lib/systemd/system/docker.service.bak

然后編輯/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock  --containerd=/run/containerd/containerd.sock

然后重啟docker:

systemctl daemon-reload

systemctl restart docker

然后創建一個非臨時的volum給Portainer使用:


sudo docker volume create portainer_data

然后采用普通容器的方式部署Portainer:

sudo docker run -d -p 9000:9000 --name portainer --restart=always  -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

這樣就ok了。

登錄后,選擇remote,里面Endpoint URL 設為你想要監控的swarm所在主機的ip:2375即可連接,並且在左側菜單的Endpoints中可以繼續添加,從而達到一個控制台管理多個集群的目的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM