【发布时间】:2016-09-07 09:39:04
【问题描述】:
我有一个在 RHEL 7 上使用 Docker 1.7.0 运行的 docker 容器。在此容器中运行的程序在端口 5000 上侦听 TCP 连接。 在我的 Dockerfile 中,我输入了 EXPOSE 5000 语句,然后使用以下命令运行容器:
docker run \
--name myProgram \
--detach \
--publish 5000:5000 \
--volume /home/docker/apps/myProgram/logs:/var/log/myProgram/ \
--volume /home/docker/apps/myProgram/conf:/usr/local/snnotificationreceiver/conf/ \
--restart always \
10.167.152.15:5000/myProgram:1.0.0
当我在主机上执行 netstat 时,我看到了 LISTEN 套接字:
[root@server bin]# netstat -naop | grep 5000
tcp6 0 0 :::5000 :::* LISTEN 33595/docker-proxy off (0.00/0/0)
我可以通过连接到端口 5000 上的主机 IP 地址来连接到应用程序,并且我发送给应用程序的数据到达。我知道这一点,因为我在我的应用程序日志中看到它,应用程序还通过套接字发送数据。但是我在 docker 主机上没有看到任何使用 netstat 建立的连接:
[root@server bin]# netstat -naop | grep ESTABLISHED
我在客户端看到了不使用 docker 的 ESTABLISHED 连接:
[root@client ~]# netstat -naop | grep 5000
tcp 0 0 10.167.43.73:39218 10.167.152.138:5000 ESTABLISHED 21429/telnet off (0.00/0/0)
我没有找到任何与 netstat 等效或类似的 docker 命令 这是正常的吗?如何查看与容器或 docker-proxy 的 ESTABLISHED 连接?
谢谢
【问题讨论】: