Docker 到本地主机

Docker 到本地主机

我正在使用一个设置多个 Docker 容器并启动它们的框架。

我想更新其中一个的源代码,但又不想继续重建docker镜像。所以,我想到在本地开发代码,并将配置指向我的本地主机。

但是,docker 上运行的服务无法连接到我的本地实例(我可以在 docker 之外正常地对其进行 curl 操作)。经过一番研究,我能够获得映射,docker.host.internal以便容器知道主机 IP,但这也不起作用。

我怀疑防火墙(iptables)可能阻止了流量。

  1. 我如何确认 iptables 是否阻止了流量?是否有任何日志可以检查以确认我的假设?
  2. 我想我需要添加一条 DNAT 规则,对吗?(例如:iptables -A DOCKER -i <docker nic> -p tcp -m tcp --dport 6060 -j DNAT --to-destination 127.0.0.1:6060;虽然这也没有帮助)
  3. 如果我运行上述 iptables 命令,更改会立即生效还是需要以某种方式重新启动 iptables 才能生效?

谢谢你! :)

答案1

我还没有使用 NAT 进行测试,但我最终做的是设置GatewayPorts=clientspecified/etc/ssh/sshd_config重新启动 sshd。

然后,我要做的就是使用 设置我的反向隧道ssh -R <docker host ip>:6060:localhost:6060 <host>。这实际上可以避免将端口绑定到环回接口,而是直接将其绑定到 docker ip。

这样,我就可以在本地机器上进行开发,以测试快速更改,而无需重建 docker 镜像。此外,这样,我将不允许端口访问公共,因此它相当安全。:)

相关内容