What is Portainer?
html
Portainer是一款輕量級的圖形化管理工具,經過它咱們能夠輕鬆管理不一樣的docker環境。Portainer部署和使用都很是的簡單,它由一個能夠運行在任何docker引擎上的容器組成。Portainer提供管理docker的containers、images、volumes、networks等等。它兼容獨立的docker環境和swarm集羣模式。基本知足中小型單位對docker容器的管理工做。node
快速部署nginx
從倉庫中查詢Portainer相關鏡像:
docker
[root@centos7 ~]# docker search portainer
拉取Portainer鏡像到本地:
json
[root@centos7 ~]# docker pull portainer/portainer
查看本地主機上的鏡像:
centos
單機安裝
瀏覽器
若是隻有一個docker宿主機,能夠使用如下命令安裝:安全
[root@centos7 ~]# docker volume create portainer_data [root@centos7 ~]# 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
Swarm集羣下安裝bash
使用Portainer提供的代理安裝程序在Swarm集羣下部署:網絡
[root@centos7 ~]# curl -L https://portainer.io/download/portainer-agent-stack.yml -o portainer-agent-stack.yml [root@centos7 ~]#docker stack deploy --compose-file=portainer-agent-stack.yml portainer
更多場景下部署方法能夠參考如下:https://portainer.readthedocs.io/en/stable/index.html
單機環境中安裝完成以後,能夠經過瀏覽機對9000端口進行訪問。如:http://192.168.39.185:9000
首次登錄須要註冊用戶:
因爲是單機環境下安裝,選擇local模式便可:
注意:該頁面上有提示須要掛載本地 /var/run/docker.socker與容器內的/var/run/docker.socker鏈接。所以,在啓動時必須指定該掛載文件。
進入首頁能夠查看到本地環境下docker相關的信息如容器,鏡像等等。
點擊「local「,查看本地docker相關信息:
點擊「Containers」查看容器相關信息:
能夠進行建立容器、啓動、中止、刪除等等操做很是的方便。
點擊「Name」,能夠查看相關容器詳細信息:
在容器列表頁面下,點擊「Add Containers」能夠進行容器的建立:
輸入相關信息點擊「deploy the container」,能夠根據已有的鏡像快速建立容器:
瀏覽器打開剛纔建立的nginx容器:
Portainer中還有不少對容器有意思的操做管理,諸如提供容器狀態監控視圖、容器狀態日誌、經過console登錄容器等等。
Portainer中還有一些不少其餘的操做,好比stacks管理、鏡像管理、卷管理、權限管理、網絡管理等等,能夠安裝上進行了解學習。
如鏡像管理,能夠查看到全部的鏡像相關列表,在鏡像列表能夠直接pull一個鏡像,能夠從遠程pull,也能夠從私有庫中pull。從私有庫中pull,須要將私有庫的地址提早進行配置。
Portainer多docker宿主機環境下管理
添加docker節點
首先在docker個節點中須要開啓遠程管理端口:2375或2376(支持ca認證,此端口較安全)
開啓2375端口,可能致使安全漏洞的出現,如下有詳細介紹:https://blog.csdn.net/ghostcloud2016/article/details/51539837
開啓2376端口比較複雜,能夠瀏覽如下:https://docs.docker.com/engine/security/https/
編輯/etc/docker/daemon.json,添加以下:
{ "hosts": ["tcp://192.168.39.100:2375", "unix:///var/run/docker.sock"] }
注意:192.168.39.100爲docker所在宿主機ip
重啓docker服務
# systemctl restart docker Warning: docker.service changed on disk. Run 'systemctl daemon-reload' to reload units.
能夠查看到端口已經開放:
在docker其餘節點能夠經過docker -H 192.168.39.100:2375 info命令查看到該節點docker相關信息。
點擊Home頁面下「add endportainer」添加該節點docker信息:
輸入如下相關信息,點擊「add endpoartainer」添加信息便可:
能夠看到添加docker-node1節點成功:
添加各個docker節點完成,這樣能夠經過portainer對每一個節點下的docker環境進行相關的管理操做。
Portanier管理Swarm集羣
Portainer管理swarm集羣時,確保環境下已經設置好Swarm集羣,若是沒有設置能夠參考Docker三劍客之Swarm
Master節點下安裝Portainer服務:
[root@centos7 ~]# 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 j6mzodyhsilp6i266w7d0i4ty overall progress: 1 out of 1 tasks 1/1: running [==================================================>] verify: Service converged
查看Portainer服務:
[root@centos7 ~]# docker service ls ID NAME MODE REPLICAS IMAGE PORTS j6mzodyhsilp portainer replicated 1/1 portainer/portainer:latest *:9000->9000/tcp
安裝完成以後,打開瀏覽器輸入http://{ip}:9000一樣會出現登錄密碼的設置界:
設置完賬號和密碼,登錄主界面,能夠查看到swarm集羣信息:
點擊「Swarm」,能夠查看到個集羣節點信息:
點擊「Image」,拉取一個nginx鏡像:
在Services下建立nginx服務,這裏建立4個副本,並將80端口映射出去,最後點擊「Create Service」建立服務:
查看service list 列表會發現,nginx服務已經建立成功:
瀏覽器中輸入個節點ip地址,均可以看到nginx頁面以下:
經過命令能夠查看到nginx服務運行狀態: