简介

Portainer 是一个轻量级的 Container 可视化管理工具,支持管理 docker, k8s

安装

docker 安装 portainer

借助docker,可以快速搭建 portainer。

这里使用docker-compose来配置服务。(需要替换下列配置中的 domain 为自己需要设置的域名)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
cat > ./docker-compose.yml <<EOF
version: "3.6"

services:

  portainer:
    container_name: portainer_server
    image: portainer/portainer-ce:2.11.0-alpine
    restart: always
    ports:
      - 9000:9000
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /data/portainer/portainer_data:/data
    networks:
      - traefik
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=traefik"
      - "traefik.http.routers.portainer-web.middlewares=https-redirect@file"
      - "traefik.http.routers.portainer-web.entrypoints=http"
      - "traefik.http.routers.portainer-web.rule=Host(`domain`)"
      - "traefik.http.routers.portainer-web.service=portainer-backend"
      - "traefik.http.routers.portainer-ssl.middlewares=gzip@file"
      - "traefik.http.routers.portainer-ssl.entrypoints=https"
      - "traefik.http.routers.portainer-ssl.tls=true"
      - "traefik.http.routers.portainer-ssl.tls.certresolver=le"
      - "traefik.http.routers.portainer-ssl.rule=Host(`domain`)"
      - "traefik.http.routers.portainer-ssl.service=portainer-backend"
      - "traefik.http.services.portainer-backend.loadbalancer.server.scheme=http"
      - "traefik.http.services.portainer-backend.loadbalancer.server.port=9000"
    logging:
        driver: "json-file"
        options:
          max-size: "10m"

networks:
  traefik:
    external: true
EOF

docker-compose up -d

使用配置

服务启动后,访问 http://ip:9000,可以看到初始化页面。

初始化portainer portainer init

选择本地docker环境 portainer local env

初始化完成 portainer env list

docker-compose 部署

portainer 中的 stack 对应docker-compose功能,可以使用 portainer 直接部署docker-compose.yml文件

portainer stack add

新增其他docker环境

portainer 可以通过agent或者docker api等方式来远程访问其他服务器的docker环境。

portainer env config

portainer add env

总结

本文主要介绍了portainer的作用以及部署方式,通过portainer可以比较方便得管理个人的一些docker环境,而不需要ssh登录服务器来部署相关服务,简化了docker部署的一些操作。

另外,portainer还支持k8s,支持除了docker api以外的方式来管理docker、k8s环境,感兴趣的可以参考:官方文档 v2.11