前言Portainer
Portainer
是Docker
的圖形化管理工具,提供狀態顯示面板、應用模板快速部署、容器鏡像網絡數據卷的基本操作(包括上傳下載鏡像,創建容器等操作)、事件日誌顯示、容器控制檯操作、Swarm集羣和服務等集中管理和操作、登錄用戶管理和控制等功能。功能十分全面,基本能滿足中小型單位對容器管理的全部需求。
優點
-
支持容器管理、鏡像管理
-
輕量級,消耗資源少
-
基於docker api,安全性高,可指定docker api端口,支持TLS證書認證。
-
支持權限分配
-
支持集羣
缺點
-
功能不夠強大。
-
容器創建後,無法通過後臺增加端口。
Docker Swarm
Docker Swarm 是一款用來管理多主機上的Docker容器的工具,可以負責幫你啓動容器,監控容器狀態,如果容器的狀態不正常它會幫你重新幫你啓動一個新的容器,來提供服務,同時也提供服務之間的負載均衡,而這些東西Docker-Compose 是做不到的。
上傳中文包portainer目錄
把 (Portainer-CN.zip 百度雲提取碼: wqp1)解壓至裏面portainer/portainer
yum install -y unzip && unzip /portainer/Portainer-CN.zip
創建網絡
docker network create --driver=bridge --subnet=172.20.0.0/16 portainer
創建目錄
mkdir -p /portainer
Portainer 安裝
vim /portainer/docker-compose.yml
version: '3.1'
services:
portainer:
image: portainer/portainer:latest
container_name: portainer
hostname: portainer
restart: always
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "./portainer/data:/data"
- "./portainer/Portainer-CN:/public"
environment:
TZ: Asia/Shanghai
LANG: en_US.UTF-8
ports:
- "9000:9000"
networks:
portainer:
ipv4_address: 172.20.0.30
networks:
portainer:
external: true
安裝Swarm Manager(swarm所有節點和服務端安裝)
docker pull swarm
創建Swarm Manager
docker swarm init --advertise-addr 192.168.3.236
生成的Swarm Manager結果
Swarm initialized: current node (zhyv8ss1a324v6nzyeoiv3ssm) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-4y8b4vinuzx8jecoirehwxjyho1dpjvkzsp9xg1bjqlqgzho6y-dig4bwtefaeizkgadkbcxikdr 192.168.3.236:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
Swarm Node運行加入Swarm Manager
docker swarm join --token SWMTKN-1-4y8b4vinuzx8jecoirehwxjyho1dpjvkzsp9xg1bjqlqgzho6y-dig4bwtefaeizkgadkbcxikdr 192.168.3.236:2377
運行結果
This node joined a swarm as a worker.
Swarm Manager查看所有Swarm node節點
docker node ls
portainer的web頁面登錄http://IP:9000,初始化密碼
docker,所以選Local,點Connect繼續;
中文版的Portainer安裝完成,在管理端查看節點
Swarm集羣測試(簡單pull一個nginx測試)Swarm Manager操作
參數說明:
- --name nginx-test:容器名稱。
- -p 8085:80: 端口進行映射,將本地 8086 端口映射到容器內部的 80 端口。
- -d nginx: 設置容器在在後臺一直運行。
docker run --name nginx-test -p 8085:80 -d nginx
Swarm Manager創建服務,服務名爲test1,副本數2(副本數不能超過集羣中節點數)
docker service create --replicas 2 --name test1 nginx
Swarm Manager查看副本運行情況
docker service ps test1
Swarm Manager將nginx容器的80端口映射到虛擬機8001端口上
docker service update --publish-add 8001:80 test1
查看集羣內server
docker service ps test1
刪除集羣內service
docker service rm test1
主動離開集羣,讓節點處於down狀態,才能刪除
docker swarm leave
刪除指定節點 (管理節點Swarm Manager)
docker node rm bfo00pvekiwc2duzopw51e6v6
Swarm Manager操作,解散集羣
docker swarm leave --force