使用 docker-compose 和 systemd 运行 Portainer Edge Agent

在这篇文章中,我们将展示如何使用 docker-compose 和 systemd 在计算机上运行 Portainer Edge Agent。如果你还没有安装 dockerdocker-compose,请参见如何在 30 秒内在 Ubuntu 上安装 docker 和 docker-compose

如果你没有运行 Edge Agent 可以连接的 Portainer 实例,请参见使用 docker-compose 和 systemd 运行 Portainer

首先,创建 docker-compose.yml 将存放的目录并编辑它:

commands.sh
sudo mkdir -p /var/lib/portainer-edge-agent
sudo nano /var/lib/portainer-edge-agent/docker-compose.yml

现在粘贴此配置文件:

docker-compose.yml
services:
  portainer_edge_agent:
    image: portainer/agent
    command: -H unix:///var/run/docker.sock
    restart: always
    volumes:
      - /:/host
      - /var/lib/docker/volumes:/var/lib/docker/volumes
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_agent_data:/data
    environment:
      - CAP_HOST_MANAGEMENT=1
      - EDGE=1
      - EDGE_ID=[YOUR EDGE ID]
      - EDGE_KEY=[YOUR EDGE KEY]

volumes:
  portainer_agent_data:

**不要忘记填写 [YOUR EDGE ID][YOUR EDGE KEY]。**你可以通过在 Portainer 实例中创建新端点来找到这些。

现在我们可以创建将自动启动 Edge Agent 的 systemd 服务:

commands.sh
sudo nano /etc/systemd/system/PortainerEdgeAgent.service
PortainerEdgeAgent.service
[Unit]
Description=PortainerEdgeAgent
Requires=docker.service
After=docker.service

[Service]
Restart=always
User=root
Group=docker
WorkingDirectory=/var/lib/portainer-edge-agent
# 单元停止时关闭容器(如果正在运行)
ExecStartPre=/usr/local/bin/docker-compose -f docker-compose.yml down
# 单元启动时启动容器
ExecStart=/usr/local/bin/docker-compose -f docker-compose.yml up
# 单元停止时停止容器
ExecStop=/usr/local/bin/docker-compose -f docker-compose.yml down

[Install]
WantedBy=multi-user.target

现在我们可以启用并启动代理:

commands.sh
sudo systemctl enable PortainerEdgeAgent.service
sudo systemctl start PortainerEdgeAgent.service

Check out similar posts by category: Container, Docker, Linux, Portainer