Docker容器无法连接主机Jolokia进程及Atom容器连接求助
问题解决指南
一、Telegraf容器无法连接主机Jolokia进程的解决方案
核心原因是MacOS环境下Docker的host网络模式特殊性:Mac的Docker运行在专属虚拟机中,容器内的localhost指向虚拟机本身,而非物理主机。
解决方法二选一:
使用主机实际IP地址
从你提供的Jolokia响应中,主机IP为172.20.10.2,在Telegraf容器内执行验证命令:curl http://172.20.10.2:8080/jolokia/同时修改
telegraf.conf中的Jolokia地址为该IP。使用MacOS专属域名
host.docker.internal
Docker为Mac提供了特殊域名,可直接映射到物理主机,执行命令:curl http://host.docker.internal:8080/jolokia/该方式无需手动获取IP,适配性更强。
二、连接正在运行的Docker Atom容器的方法
你的Atom容器使用了network_mode: host,直接共享主机网络栈:
- 主机端访问:直接用
localhost:9090(容器原生端口)或localhost:9091(你映射的端口)即可。 - Telegraf容器内访问:同样使用主机IP或
host.docker.internal加对应端口,例如:curl http://host.docker.internal:9090/
如果需要更灵活的容器间通信,建议改用Docker自定义网络:
- 修改
docker-compose.yml配置:version: "3" networks: boomi-net: driver: bridge services: atom: image: boomi/atom:5.0.2-rhel container_name: eyer-observability platform: linux/amd64 volumes: - /Users/amarachiiheanacho/Documents/boomi-atom/data:/mnt/boomi:Z environment: - BOOMI_ATOMNAME=eyer-observability - INSTALL_TOKEN=token - BOOMI_ENVIRONMENTID=id - ATOM_LOCALHOSTID=eyer-observability ports: - "9091:9090" networks: - boomi-net telegraf: image: telegraf:latest container_name: telegraf volumes: - /Users/amarachiiheanacho/Documents/boomi-atom/telegraf.conf:/etc/telegraf/telegraf.conf:ro - /Users/amarachiiheanacho/Documents/boomi-atom/metrics.out:/metrics.out ports: - "8086:8086" networks: - boomi-net - 此时Telegraf容器可直接通过容器名访问Atom服务:
curl http://atom:9090/
内容的提问来源于stack exchange,提问作者Iheanacho Amarachi Sharon
相关产品推荐
相关产品推荐

