我在主机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
我很好奇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