代码之家  ›  专栏  ›  技术社区  ›  Nathan Arthur user2811108

主机端口在Docker容器内显示为关闭状态

  •  0
  • Nathan Arthur user2811108  · 技术社区  · 6 年前

    目标

    我想知道为什么我不能通过9000端口从我的Docker容器中访问phpsterm。

    安装程序

    文档文件

    FROM php:7.1-apache
    
    RUN apt-get update && apt-get install -y telnet nmap
    

    docker-compose.yml公司

    version: '3'
    services:
      test:
        build: .
    

    步骤

    • 可以从主机访问测试端口: telnet 127.0.0.1 9000 (成功)
    • docker-compose up
    • docker container ls
    • docker exec -it [CONTAINER] /bin/bash
    • 在容器内查找主机IP: /sbin/ip route | awk '/default/ { print $3 }'
    • 从容器内部Ping IP: ping 172.18.0.1 (成功)
    • 在容器内,尝试使用主机IP连接到端口: telnet 172.18.0.1 9000 (失败)
    • 在容器内,使用nmap检查端口是否打开: nmap 172.19.0.1 -p 9000 (显示端口为关闭状态)

    telnet失败 telnet: Unable to connect to remote host: Connection refused

    nmap结果:

    # nmap 172.19.0.1 -p 9000
    
    Starting Nmap 6.47 ( http://nmap.org ) at 2018-07-03 18:43 UTC
    Nmap scan report for 172.19.0.1
    Host is up (0.000040s latency).
    PORT     STATE  SERVICE
    9000/tcp closed cslistener
    MAC Address: [redacted] (Unknown)
    
    Nmap done: 1 IP address (1 host up) scanned in 0.68 seconds
    

    我的问题

    如何访问Docker容器中的端口9000(phpsorm用来监听xdebug连接)?

    1 回复  |  直到 6 年前