Azure容器实例中qmcgaw/gluetun容器无法正常运行求助
排查Azure容器实例中Gluetun容器Waiting状态问题
以下是针对你的问题的排查步骤和解决方案:
1. 先获取容器的详细日志和启动事件
容器状态显示waiting但无日志,首先用Azure CLI获取容器的日志和启动事件,这是排查的核心:
- 获取VPN容器日志:
az container logs --resource-group <你的资源组名> --name <容器组名> --container-name vpn-username - 获取容器组的启动事件(能看到容器启动失败的具体原因):
az container show --resource-group <你的资源组名> --name <容器组名> --query 'containers[*].instanceView.events' -o table
2. 检查cap_add: NET_ADMIN在ACI中的支持
Gluetun必须依赖NET_ADMIN权限才能创建VPN隧道。虽然Docker Compose部署到ACI时支持cap_add,但需要确认容器组是否正确应用了该配置:
- 若通过
docker compose up部署到ACI,确保Docker Desktop的Azure集成已正确配置; - 若通过Azure门户或ARM模板部署,需显式在容器的安全上下文里添加
NET_ADMIN能力。
3. 修正network_mode: service:vpn-username的配置
Azure容器实例(ACI)中,同一个容器组内的容器默认共享网络命名空间,不需要使用network_mode: service:语法。这个配置在本地Docker有效,但在ACI中可能导致依赖容器无法正确初始化:
- 删除
script-runner-username服务中的network_mode: service:vpn-username配置; - 保留
depends_on: vpn-username确保脚本容器在VPN容器启动后再运行。
4. 调整资源限制
ACI的资源限制是硬限制,Gluetun启动需要足够的CPU和内存资源,你的当前配置(0.5CPU/1G内存)可能不足:
- 将
vpn-username的资源限制调整为:deploy: resources: limits: cpus: '1.0' memory: 1536M - 资源不足会导致容器无法启动,处于waiting状态。
5. 验证ProtonVPN的网络连通性
Azure环境下,容器需要能访问ProtonVPN的服务器:
- 确认容器组使用的是公共网络(默认配置),出站流量无限制;
- 若使用自定义VNET,需确保NSG允许出站到UDP 1194、TCP 443等ProtonVPN常用端口;
- 检查ProtonVPN的认证信息:OpenVPN密码需使用ProtonVPN账户的应用密码,而非主账户密码(本地正常的话这条可能没问题,但需再确认)。
6. 检查端口映射的必要性
你映射了UDP 1194端口,但Gluetun作为客户端连接VPN时,不需要暴露这个端口给外部。移除端口映射可能避免潜在的网络冲突:
- 删除
vpn-username服务中的ports: - "1194:1194/udp"配置。
修改后的Docker Compose示例
version: '3.8' x-azure-settings: acr-credentials: - server: <acr-server-name>.azurecr.io username: <acr-username> password: <acr-password> services: vpn-username: image: qmcgaw/gluetun deploy: resources: limits: cpus: '1.0' memory: 1536M cap_add: - NET_ADMIN environment: - VPNSP=protonvpn - OPENVPN_USER=<vpn-username> - OPENVPN_PASSWORD=<vpn-password> - SERVER_COUNTRIES=Netherlands script-runner-username: image: <acr-server-name>.azurecr.io/<your-image-name>:latest deploy: resources: limits: cpus: '0.1' memory: 100M depends_on: - vpn-username command: python fetchip.py
内容的提问来源于stack exchange,提问作者Ak99mProgrammer
相关产品推荐
相关产品推荐

