我有以下docker-compose.yml(遗漏不是必要的部分):
zabbix-server:
image: zabbix/zabbix-server-pgsql:alpine-4.0-latest
ports:
- "10051:10051"
networks:
zbx_net_backend:
aliases:
- zabbix-server
zabbix-agent:
image: zabbix/zabbix-agent:alpine-4.0-latest
ports:
- "10050:10050"
networks:
zbx_net_backend:
aliases:
- zabbix-agent
networks:
zbx_net_backend:
driver: bridge
internal: true
ipam:
driver: default
config:
- subnet: 172.16.239.0/24
zabbix-server正在为其localhost:10050
上的zabbix-agent开箱即用。是否可以在zabbix-server的localhost:10050上使zabbix-agent的端口10050可用?
我知道我可以通过"Configuration" -> "Hosts" -> edit -> "DNS Name"
在zabbix-server中配置zabbix-agent主机名,但我希望尽可能避免这种情况,并通过配置docker-compose.yml来实现。
一种选择是使目标地址在可用的地方可配置(可能已经是?)并将目标设置为相关的docker compose服务:
zabbix-server:
image: zabbix/zabbix-server-pgsql:alpine-4.0-latest
environment:
AGENT_URL: zabbix-agent
ports:
- "10051:10051"
zabbix-agent:
image: zabbix/zabbix-agent:alpine-4.0-latest
无法将localhost
环回设备点重定向到另一个容器。但是,如果你真的想要这个,那么你可以将它们连接到host
网络。
像这样:
zabbix-server:
image: zabbix/zabbix-server-pgsql:alpine-4.0-latest
ports:
- "10051:10051"
network_mode: "host"
zabbix-agent:
image: zabbix/zabbix-agent:alpine-4.0-latest
ports:
- "10050:10050"
network_mode: "host"
这样做,将允许您使用zabbix-server容器中的localhost:10050
来解决zabbix-agent。