端口映射不适用于一项服务

时间:2018-04-21 11:21:19

标签: docker docker-compose

这是我的撰写文件ubuntu-zabbix.yml:

version: '3.1'

services:

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example

  zbx-backend:
    image: zabbix/zabbix-server-mysql:ubuntu-3.0-latest
    restart: always
    environment:
      DB_SERVER_HOST: db
      MYSQL_ROOT_PASSWORD: example
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix
      MYSQL_DATABASE: zabbix
    depends_on:
      - db
    ports:
      - 10051:10051

  zbx-frontend:
    image: zabbix/zabbix-web-nginx-mysql:ubuntu-3.0-latest
    restart: always
    environment:
      DB_SERVER_HOST: db
      ZBX_SERVER_HOST: zbx-backend
      MYSQL_ROOT_PASSWORD: example
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix
      MYSQL_DATABASE: zabbix
    depends_on:
      - db
      - zbx-backend
    ports:
      - 80:80

通过命令运行

docker-compose -f ubuntu-zabbix.yml up

操作系统版本/构建: Ubuntu 16.04.4 / Docker版本18.03.0-ce,build 0520e24

问题出在zbx-backend上。 Docker应该设置端口转发:10051,没做什么。这可以在调试输出中看到。

在调试输出(dockerd --debug)中没有任何端口映射:10051也不是zbx-backend上的任何iptables设置也没有像在端点上编程外部连接zabbix-docker_zbx-backend_1' https://pastebin.com/raw/8LvZy3dc

我可以直接连接到端口到容器IP,因此端口本身应该没有问题:

root@prod1:~/zabbix-docker# telnet 172.18.0.4 10051
Trying 172.18.0.5...
Connected to 172.18.0.5.
Escape character is '^]'.

root@prod1:~/zabbix-docker# telnet 127.0.0.1 10051
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

任何想法如何让zbx-backend iptables / port映射正常工作?感谢

1 个答案:

答案 0 :(得分:0)

问题似乎出现在配置更新中。在新的主机上一切都很好,我在调试日志设置iptables中看到zbx-backend。在旧的主机上我没有看到例如在调试日志中更改了服务名称,但在命令docker-compose的stdout中更改了它。不确定问题与docker或docker-compose有关。