在另一个容器的本地主机上发布端口

时间:2019-03-08 21:06:36

标签: docker docker-compose

我有以下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服务器正在其localhost:10050上直接寻找 zabbix-agent 。可以使 zabbix-agent 的端口10050在 zabbix-server 的localhost:10050上可用吗?

我知道我可以通过"Configuration" -> "Hosts" -> edit -> "DNS Name"在zabbix-server中配置zabbix-agent主机名,但我想避免这种情况,并通过docker-compose.yml的配置来实现。

2 个答案:

答案 0 :(得分:0)

一种选择是使目标地址在使用它的位置可配置(也许已经在?)并将目标设置为相关的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

答案 1 :(得分:0)

不可能将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。