docker 部署 portainer(http)

===============================================html

2019/4/30_第6次修改                       ccb_warlocknode

 

更新說明:git

2019/4/30:修改了local英文拼寫錯誤的問題;github

2019/4/16:修改了2.1建立目錄不正確的問題;web

2019/4/10:調整了docker、docker compose的部署方法的引用;docker

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上的收藏也較多。

  


1、前提

 


2、部署portainer

2.1 建立目錄

mkdir -p /opt/compose/portainer
mkdir -p /usr/docker-vol/portainer/data

 PS.因爲方便持久化文件定位,這裏使用目錄映射而不是卷映射來作數據持久化

 

2.2 建立網絡

# 本地用的network

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

 

# swarm用的network

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

  

2.3 建立portainer容器

2.3.1 run方式

# 建立容器portainer

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

 

2.3.2 compose方式

# 編輯docker-compose.yml

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

 

# 建立容器portainer

cd /opt/compose/portainer
docker-compose up -d

 

PS.若是須要移除該compose文件建立的全部容器,可使用命令

cd /opt/compose/portainer
docker-compose down

 

2.3.3 stack方式

# 編輯portainer-stack.yml

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

 

# 建立portainer-stack

cd /opt/compose/portainer
docker stack deploy -c portainer-stack.yml portainer-stack

 

PS.若是須要移除該stack建立的全部service,可使用命令

docker stack rm portainer-stack

 


3、配置portainer

3.1 訪問頁面

瀏覽器訪問 https://192.168.12.11:9000

填寫8位以上密碼,建立管理員用戶。進入系統後能夠再修改8位之內的密碼。(某個版本更新後改爲了8位以上的要求,坑啊)

選擇「Local」,點擊「Connect」。

 

3.2 添加鏡像倉庫

爲了方便部署,swarm能夠經過portainer的stacks來部署容器,故須要配置須要拉取的鏡像倉庫。

 

左側導航欄選擇「Registries」,點擊「Add registry」,填寫鏡像倉庫的名稱、URL、管理員的帳號/密碼。




因爲拉取的倉庫是我內部搭建的私有倉庫,故選擇「Custom registry」,填寫倉庫信息。

 


參考資料:

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

相關文章
相關標籤/搜索