Portainer.io 是一个轻量级的 Docker 和 Kubernetes 可视化管理系统,通过直观的 Web 界面简化容器化应用的部署、管理和监控。以下是它的核心作用、功能和应用场景:
快速开始#
核心作用
- 可视化容器管理
- 无需记忆复杂的命令行,通过 Web 界面即可管理 Docker/Kubernetes 容器、镜像、网络、卷等资源。
- 支持多节点(本地或远程服务器)的统一管理。
- 简化运维操作
- 一键部署应用、更新容器、查看日志、执行终端命令。
- 提供图形化操作界面
- 安全与权限控制
- 支持多用户角色分配(管理员、普通用户等),细化权限管理。
- 集成 TLS 加密,保障远程管理安全。
- 监控与告警
- 实时监控容器资源占用(CPU、内存、网络)。
- 支持日志查看和事件追踪,快速定位问题。
基础环境#
- Docker
- Docker Compose
- Traefik【可选】
部署步骤#
- 创建
compose.yml文件
mkdir /usr/local/src/portainer
touch /usr/local/src/portainer/compose.yml
- compose.yml文件内容
services:
portainer:
image: portainer/portainer-ce:2.33.1
container_name: portainer
restart: unless-stopped
environment:
# 时区
- TZ=Asia/Shanghai
ports:
- "8000:8000"
- "9000:9000"
- "9443:9443"
volumes:
- /usr/local/src/portainer/data:/data
- /var/run/docker.sock:/var/run/docker.sock
networks:
# dhcp 自动分配
- service
# 资源限制优化:
deploy:
resources:
limits:
memory: 128m
cpus: "0.50"
labels:
# Traefik 服务发现和路由配置
# 启用 Traefik 对此服务进行发现
- "traefik.enable=true"
# 指定 Traefik 应该监听哪个网络来发现此服务
- "traefik.docker.network=service"
# Router (路由器) 配置
# 定义路由规则:匹配域名 portainer.artoio.com
- "traefik.http.routers.portainer.rule=Host(`portainer.artoio.com`)"
# 指定此路由只监听 'websecure' 入口点(通常是 443 端口)
- "traefik.http.routers.portainer.entrypoints=websecure"
# 为此路由启用 TLS (HTTPS)
- "traefik.http.routers.portainer.tls=true"
# 使用名为 'letsencrypt' 的证书解析器(需要在 Traefik 配置中定义)
- "traefik.http.routers.portainer.tls.certresolver=letsencrypt"
# Service (服务) 配置
# 指定此路由要转发到哪个 Traefik 服务(与下面的服务名一致)
- "traefik.http.routers.portainer.service=portainer"
# portainer 容器内部监听的端口
- "traefik.http.services.portainer.loadbalancer.server.port=9000"
# WAF
- "traefik.http.routers.portainer.middlewares=chaitin@file"
networks:
service:
external: true
- 启动容器
docker compose up -d
数据持久【强制】#
数据持久将Portainer数据持久化到/usr/local/src/portainer/data目录下,如使用Stacks创建的容器服务。
/usr/local/src/portainer/data:/data
网关代理【可选】#
Traefik网关代理Portainer容器,用于实现域名访问,并且Traefik配置了证书自动申请、定时更新!
- 9000: Portainer Web 端口
- 9443: Portainer HTTPS 端口

