--- 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 容器。 ```bash 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. ```yml 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 端口。 - **优点**: - 跨主机操作更方便。 - 无需开放 Docker API。 - **缺点**: - 需要在每个目标机器上部署 Agent 容器。 --- ### 2. **API** - **简介**: 直接通过 Docker Remote API 访问 Docker 守护进程。 - **设置步骤**: 1. 在 B 电脑的 Docker 守护进程中启用远程 API,编辑 Docker 配置文件 `/etc/docker/daemon.json`: ```json { "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"] } ``` 2. 重启 Docker 服务: ```bash systemctl restart docker ``` 3. 在 Portainer 上添加连接,选择 **Docker API**,填写 B 电脑的 IP 和 2375 端口。 - **优点**: - 配置简单,适合测试和内部网络环境。 - **缺点**: - 默认情况下 API 没有加密(需启用 TLS 证书),存在安全风险。 --- ### 3. **Socket** - **简介**: 直接使用 Docker 本地的 Unix Socket 进行通信,适用于 Portainer 和 Docker 安装在同一主机上。 - **设置步骤**: 1. 在 A 或 B 电脑上挂载 `/var/run/docker.sock`,运行 Portainer 容器。 ```bash 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。 - **优点**: - 配置简单,无需网络连接。 - **缺点**: - 只能管理本地主机,无法跨主机操作。 --- ### 4. **Edge Agent** - **简介**: 用于通过 HTTPS 安全连接管理远程 Docker 主机,适合更复杂的网络场景(如 NAT、企业内网)。 - **设置步骤**: 1. 在 Portainer 中启用 **Edge 环境**。 2. 在目标主机上安装 Edge Agent 容器: ```bash docker run -d -p 8000:8000 -p 9443:9443 \ --name portainer_edge_agent \ --restart always \ -e EDGE=1 \ -e EDGE_ID= \ -e EDGE_KEY= \ portainer/agent ``` (具体的 ``​ 和 `` 会在 Portainer 添加 Edge 环境时生成。) 3. 在 Portainer 中通过 Edge ID 添加目标主机。 - **优点**: - 支持 HTTPS 加密,安全性高。 - 适合复杂网络环境(如主机在 NAT 背后)。 - **缺点**: - 配置较复杂。 --- ### **如何选择?** - **本地管理 Docker**: 使用 **Socket**。 - **同一局域网内的 Docker 主机**: 使用 **Agent** 或 **API**。 - **远程网络/跨网络环境**: 使用 **Edge Agent**。 - **简单测试/无加密需求**: 使用 **API**。