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

Docker 另一个容器的本地主机上的发布端口,docker,docker-compose,Docker,Docker Compose,我有以下docker-compose.yml(省略非必要部分): zabbix服务器正在其localhost:10050上寻找zabbix代理。是否可以使zabbix代理的端口10050在zabbix服务器的localhost:10050上可用 我知道我可以通过“配置”->“主机”->“编辑”->“DNS名称”在zabbix服务器中配置zabbix代理主机名,但我希望尽可能避免这种情况,并通过配置docker compose.yml来实现这一点。一个选项是在使用目标地址的地方配置目标地址(可能它

我有以下docker-compose.yml(省略非必要部分):

zabbix服务器正在其
localhost:10050
上寻找zabbix代理。是否可以使zabbix代理的端口10050在zabbix服务器的localhost:10050上可用


我知道我可以通过
“配置”->“主机”->“编辑”->“DNS名称”
在zabbix服务器中配置zabbix代理主机名,但我希望尽可能避免这种情况,并通过配置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

一个选项是使目标地址在使用位置可配置(可能已经配置了?),并将目标设置为相关的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
环回设备点重定向到另一个容器。但是,如果您真的需要,那么您可以将它们都连接到
主机
网络

像这样:

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服务器容器中的
localhost:10050
对zabbix代理进行寻址。

无法将
localhost
环回设备点重定向到另一个容器。但是,如果您真的需要,那么您可以将它们都连接到
主机
网络

像这样:

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服务器容器中的
localhost:10050
对zabbix代理进行寻址。

如果这是开发人员设置,最佳做法是删除所有网络配置,通过env变量(例如
agent\u URL
)配置目标地址,并设置
agent\u URL=zabbix代理/
。通过使用服务名称作为URL,服务可以相互定位。如果这是开发人员设置,最好的做法是删除所有网络配置,通过env变量(例如
AGENT\u URL
)配置目标地址,并设置
AGENT\u URL=zabbix AGENT/
。通过使用服务名称作为URL,服务可以相互定位。请看