自定义端口转发到docker集装箱
我在主机H1上有一个Docker容器C1,它公开了一个我无法通过docker run -p
选项映射的端口。 我必须通过iptables来做端口转发。 我想出了以下规则。
iptables -t nat -I DOCKER 1 -p tcp --dport $HOST_PORT -j DNAT --to-destination $CONTAINER_IP_ADDRESS:$CONTAINER_PORT
- 情况1:在H1上时,我可以用H1的IP telnet到C1。
- 情况2:在C1上时,我无法用H1的IP telnet到C1。
我很好奇docker run -p
如何docker run -p
做转发,因为情况2使用该选项。 我已经分析了使用它时创build的iptables规则,但无法获得相同的结果。
现在我甚至开始在容器中做tcpdump,发现在自己做转发的时候,数据包被发送到H1,但是什么都没有回来。
任何人都可以告诉我什么docker工人使用转发选项时有什么不同?
编辑1:
使用端口映射是不可能的,因为Elastic Beanstalk V1不支持,我不能使用V2。
我正在做以下事情:
-
情况1
root@H1: telnet $HOST_IP $HOST_PORT
-
案例2
root@C1: telnet $HOST_IP $HOST_PORT
- Tomcat不能在Docker容器中启动,因为它不能创build日志文件
- 在Azure虚拟机窗口上安装Docker 10
- ubuntu 14.04 SuperDesk Raven未configuration(禁用日志logging)
- 如何在运行的docker集装箱内“完成”一个进程
- 在Windows Server 2008上的Docker工具
- Jenkinspipe道:在docker.image()。里面更新镜像()
- 由docker构build的映像的引用与项目/目录名称绑定
- Go + MySql:迁移到GKE(Google云容器引擎)有多简单?
- 如何在stream浪汉里设置PyCharm for Docker?