Portainer远程管理.md 3.8 KB


title: Portainer远程管理 date: 2024-11-16T09:54:20+08:00

lastmod: 2025-02-23T11:10:18+08:00

Portainer远程管理


1. Agent

  • 简介: Portainer 官方提供的轻量代理,用于在目标机器(如 B 电脑)上与 Docker 进行通信。
  • 设置步骤:

    1. 在 B 电脑上安装 Agent 容器。

      docker run -d -p 9001:9001 \
       --name portainer_agent \
       --restart always \
       -v /var/run/docker.sock:/var/run/docker.sock \
       -v /var/lib/docker/volumes:/var/lib/docker/volumes \
       portainer/agent
      
    2. version: '3.8'  # 可以根据你的需要选择版本
      
      services:
      portainer_agent:
       image: portainer/agent:latest
       container_name: portainer_agent
       restart: always
       ports:
         - "9001:9001/tcp"
       volumes:
         - /var/run/docker.sock:/var/run/docker.sock:rw
         - /var/lib/docker/volumes:/var/lib/docker/volumes:rw
       networks:
         - portainer_network
      
      networks:
      portainer_network:
       driver: bridge
      
      
    3. 在 A 电脑(Portainer UI)上添加连接,选择 Agent,填写 B 电脑的 IP 和 9001 端口。

    4. 优点:

    • 跨主机操作更方便。
    • 无需开放 Docker API。
    • 缺点:

    • 需要在每个目标机器上部署 Agent 容器。


    2. API

    • 简介: 直接通过 Docker Remote API 访问 Docker 守护进程。
    • 设置步骤:
    1. 在 B 电脑的 Docker 守护进程中启用远程 API,编辑 Docker 配置文件 /etc/docker/daemon.json:

      {
       "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
      }
      
    2. 重启 Docker 服务:

      systemctl restart docker
      
    3. 在 Portainer 上添加连接,选择 Docker API,填写 B 电脑的 IP 和 2375 端口。

    4. 优点:

    • 配置简单,适合测试和内部网络环境。
    • 缺点:

    • 默认情况下 API 没有加密(需启用 TLS 证书),存在安全风险。


    3. Socket

    • 简介: 直接使用 Docker 本地的 Unix Socket 进行通信,适用于 Portainer 和 Docker 安装在同一主机上。
    • 设置步骤:
    1. 在 A 或 B 电脑上挂载 /var/run/docker.sock,运行 Portainer 容器。

      docker run -d -p 8000:8000 -p 9443:9443 \
       --name portainer \
       --restart always \
       -v /var/run/docker.sock:/var/run/docker.sock \
       portainer/portainer-ce
      
    2. 无需额外配置即可管理该主机上的 Docker。

    3. 优点:

    • 配置简单,无需网络连接。
    • 缺点:

    • 只能管理本地主机,无法跨主机操作。


    4. Edge Agent

    • 简介: 用于通过 HTTPS 安全连接管理远程 Docker 主机,适合更复杂的网络场景(如 NAT、企业内网)。
    • 设置步骤:
    1. 在 Portainer 中启用 Edge 环境
    2. 在目标主机上安装 Edge Agent 容器:

      docker run -d -p 8000:8000 -p 9443:9443 \
       --name portainer_edge_agent \
       --restart always \
       -e EDGE=1 \
       -e EDGE_ID=<edge_id> \
       -e EDGE_KEY=<edge_key> \
       portainer/agent
      

    (具体的 <edge_id>​ 和 <edge_key> 会在 Portainer 添加 Edge 环境时生成。)

    1. 在 Portainer 中通过 Edge ID 添加目标主机。
    2. 优点:
    • 支持 HTTPS 加密,安全性高。
    • 适合复杂网络环境(如主机在 NAT 背后)。
    • 缺点:

    • 配置较复杂。


    如何选择?

    • 本地管理 Docker: 使用 Socket
    • 同一局域网内的 Docker 主机: 使用 AgentAPI
    • 远程网络/跨网络环境: 使用 Edge Agent
    • 简单测试/无加密需求: 使用 API