一尘不染

远程访问Docker容器中的Web服务器

docker

我已经开始使用docker进行开发,并进行以下设置:

  • 主机-ubuntu服务器。
  • Docker容器-带有tomcat服务器的webapp(使用https)。

就主机-容器访问而言-一切正常。 但是 ,我无法从远程计算机(尽管仍然在同一网络中)访问容器的webapp。

跑步时

docker port <container-id> 443

输出符合预期,因此docker的端口绑定看起来不错。

172.16.*.*:<random-port>

有任何想法吗?

谢谢!


阅读 968

收藏
2020-06-17

共1个答案

一尘不染

我发现了我错过的内容,因此这是一个从远程机器访问docker容器webapp的简单流程:

步骤#1 :将物理主机端口(例如22、443、80等)绑定到容器的虚拟端口。可能的语法:

    docker run -p 127.0.0.1:443:3444 -d <docker-image-name>

(有关所有选项的端口重定向,请参阅docker
docs

步骤2 :将主机的物理端口重定向到容器分配的虚拟端口。可能的(linux)语法:

    iptables -t nat -A PREROUTING -i <host-interface-device> -p tcp --dport <host-physical-port> -j REDIRECT --to-port <container-virtual-port>

那应该涵盖基本用例。

祝好运!

2020-06-17