使用 docker-compose 和 systemd 运行 Portainer Edge Agent
在这篇文章中,我们将展示如何使用 docker-compose 和 systemd 在计算机上运行 Portainer Edge Agent。如果你还没有安装 docker 或 docker-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.servicePortainerEdgeAgent.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.serviceIf this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow