自定义端口转发到docker容器

时间:2015-08-08 15:30:33

标签: docker iptables portforwarding

我在主机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远程登录到C1。
  • 案例2:在C1上我无法使用H1的IP远程登录到C1。

我很好奇docker run -p如何进行转发,因为案例2适用于该选项。我已经分析了使用它时创建的iptables规则,但是无法获得相同的结果。

现在我甚至开始在容器中执行tcpdumps,发现在自己进行转发时,数据包被发送到H1但没有任何回复。

有人能告诉我使用转发选项时docker有什么不同吗?

编辑1:

无法使用端口映射,因为Elastic Beanstalk V1不支持,我无法使用V2。

我正在做以下事情:

  • 案例1

    root@H1: telnet $HOST_IP $HOST_PORT

  • 案例2

    root@C1: telnet $HOST_IP $HOST_PORT

0 个答案:

没有答案