【发布时间】:2015-01-15 03:50:07
【问题描述】:
我写了一个简单的程序来监听 tcp 9999 和 udp 9966,并将程序包装到一个 docker 容器中,如下所示:
FROM jeanblanchard/busybox-java
ADD testprg /opt/testprg
EXPOSE 9999
EXPOSE 9966/udp
ENTRYPOINT ["/opt/testprg/start.sh"]
然后像这样运行 docker:
docker run -d -P testprg
以及docker ps -a 结果(PORTS 部分):
0.0.0.0:14355->9966/udp, 0.0.0.0:14337->9999/tcp
一切看起来都很好,我可以远程登录到localhost 14337 并获得响应,但不能来自远程机器。我尝试使用lsof -i :14337 或netstat -nat | grep docker,一无所获。
我也尝试像这样添加iptable 路由:
sudo iptables -t nat -A PREROUTING -i 192.168.1.101 -p tcp --dport 14355 -j REDIRECT --to-port 9999
另外,没有从远程机器上得到任何东西。那么,我的问题是,如何将程序公开的端口重定向到主机外部?
【问题讨论】:
标签: docker remote-access