【发布时间】:2018-07-03 19:42:49
【问题描述】:
目标
我试图弄清楚为什么我无法从 Docker 容器内部通过端口 9000 访问 PhpStorm。
设置
Dockerfile
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 updocker container lsdocker 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(PhpStorm 用于侦听 Xdebug 连接)?
【问题讨论】:
标签: macos docker networking docker-compose xdebug