===============================================
2019/4/30_第6次修改 ccb_warlock
更新說明:
2019/4/30:修改了local英文拼寫錯誤的問題;
2019/4/16:修改了2.1創建目錄不正確的問題;
2019/4/10:調整了docker、docker compose的部署方法的引用;
2019/4/6:優化了run、compose、stack的部署方式;
2018/8/3:刪除2.1中無用的目錄創建命令;
對2.2.2中對容器的資源限制進行擴容;
===============================================
部署完swarm(http://www.cnblogs.com/straycats/p/8978135.html)之后,尋找可以管理swarm的web系統方便管理,經過使用portainer可以滿足對swarm的基本管理,而且該項目github上的收藏也較多。
一、前提
- 部署了docker(https://www.cnblogs.com/straycats/p/10680502.html)
- 部署了docker compose(https://www.cnblogs.com/straycats/p/10680769.html)
- 部署了swarm(https://www.cnblogs.com/straycats/p/8978135.html)
- 默認部署的服務器IP:192.168.12.11
- 對於管理swarm,將portainer部署在該swarm管理節點上(一個portainer管理多個主機(或swarm)沒用過,估計是通過配置“endpoint”來實現,畢竟接觸的業務量小還沒經歷多主機(集群)管理)
二、部署
2.1 創建目錄
mkdir -p /opt/compose/portainer
mkdir -p /usr/docker-vol/portainer/data
PS.由於方便持久化文件定位,這里使用目錄映射而不是卷映射來做數據持久化
docker network create \ --driver=bridge \ --subnet=172.11.0.0/16 \ --ip-range=172.11.0.0/16 \ --gateway=172.11.0.1 \ --attachable \ local-net
docker network create \ --driver=overlay \ --subnet=172.12.0.0/16 \ --ip-range=172.12.0.0/16 \ --gateway=172.12.0.1 \ --attachable \ swarm-net
docker run -d \ --name portainer \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/docker-vol/portainer/data:/data \ -p 9000:9000 \ --network local-net \ --cpus 0.5 \ --memory 200M \ --restart on-failure \ portainer/portainer
PS.如果需要移除該容器,可以使用命令
docker stop portainer
docker rm portainer
vi /opt/compose/portainer/docker-compose.yml
將下面的內容添加到docker-compose.yml內,wq保存。
version: '3' services: portainer: image: portainer/portainer volumes: - /var/run/docker.sock:/var/run/docker.sock - /usr/docker-vol/portainer/data:/data ports: - 9000:9000 networks: - local-net networks: local-net: external: true
cd /opt/compose/portainer
docker-compose up -d
PS.如果需要移除該compose文件創建的所有容器,可以使用命令
cd /opt/compose/portainer
docker-compose down
vi /opt/compose/portainer/portainer-stack.yml
將下面的內容添加到portainer-stack.yml內,wq保存。
version: '3.4' services: portainer: image: portainer/portainer volumes: - /var/run/docker.sock:/var/run/docker.sock - /usr/docker-vol/portainer/data:/data deploy: placement: constraints: [node.role == manager] replicas: 1 restart_policy: condition: on-failure resources: limits: cpus: "0.5" memory: 200M update_config: parallelism: 1 delay: 5s monitor: 10s max_failure_ratio: 0.1 order: start-first ports: - 9000:9000 networks: - swarm-net networks: swarm-net: external: true
cd /opt/compose/portainer
docker stack deploy -c portainer-stack.yml portainer-stack
PS.如果需要移除該stack創建的所有service,可以使用命令
docker stack rm portainer-stack
三、
瀏覽器訪問 https://192.168.12.11:9000
填寫8位以上密碼,創建管理員用戶。進入系統后可以再修改8位以內的密碼。(某個版本更新后改成了8位以上的要求,坑啊)

選擇“Local”,點擊“Connect”。

為了方便部署,swarm可以通過portainer的stacks來部署容器,故需要配置需要拉取的鏡像倉庫。
左側導航欄選擇“Registries”,點擊“Add registry”,填寫鏡像倉庫的名稱、URL、管理員的賬號/密碼。

由於拉取的倉庫是我內部搭建的私有倉庫,故選擇“Custom registry”,填寫倉庫信息。

1.https://www.portainer.io/installation/
