当前位置: 首页 > 面试题库 >

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

张鹏云
2023-03-14
问题内容

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

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

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

跑步时

docker port <container-id> 443

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

172.16.*.*:<random-port>

有任何想法吗?

谢谢!


问题答案:

我发现了我错过的内容,因此这是一个从远程机器访问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>

那应该涵盖基本用例。

祝好运!



 类似资料:
  • 问题内容: 我正在boot2docker 1.3.1下运行。 我有一个Docker容器通过运行Web服务器。 如果我连接到该容器,则可以使用浏览该网站,以便知道服务器正在运行。 我用以下容器运行容器: 它具有以下详细信息: 我以为可以访问,从托管人访问该网站。 这是行不通的。我只是在Chrome中看到“正在连接…”,却一无所获。 我究竟做错了什么? 问题答案: 好吧,愚蠢的我,我在boot2doc

  • 问题内容: 我正在使用JBoss运行客户端/服务器应用程序。 如何连接到服务器JVM的MBeanServer?我想使用MemoryMX MBean来跟踪内存消耗。 我可以使用JNDI查找连接到JBoss MBeanServer,但是java.lang.MemoryMX MBean没有在JBoss MBeanServer中注册。 编辑:要求是从客户端以编程方式访问内存使用情况。 问题答案: 与JBo

  • 问题内容: 我运行基于节点映像的Docker容器(Windows的Docker快速入门终端) 我启动节点客户端(在端口3000上)和节点(基于Express)的服务器(在3009 端口上)。客户端通过AJAX调用访问REST服务器。 它可以完美地从主机运行(客户端访问localhost:3009并返回结果)。我可以拨打:3009,然后再次得到正确的结果。 但是当我构建并运行docker image

  • 问题内容: 我刚刚使用自制软件在Mac上使用Docker- Toolbox安装了Docker:使用自制软件安装了Docker 在使用Rails创建并配置了容器之后,Postgres并启动了docker-compose,一切看起来都很好,但是我无法从主机访问Web服务器。 输出 当我输入谷歌浏览器的网址http://0.0.0.0:8000/我得到 所以我尝试了 具有以下输出: 当我尝试使用Chro

  • 我有一个Maven Spring 4应用程序,我在 http://localhost:9292 的本地 Jetty 服务器上运行。我还有一个在 http://localhost:9990 运行的 JBoss EAP 服务器,我在其上创建了一个 JMS 主题。 但是我不知道如何从我的Spring应用程序中访问JMS元素。 在这篇文章的末尾是JBoss EAP 7配置文件中的一些元素独立.xml(消息

  • 我有: 本地PyCharm 带有docker容器的远程服务器 我想在远程docker容器Python解释器中运行本地PyCharm代码(远程服务器上的代码),以便调试。怎么设置? 我还在互联网上找到了一些文章,其中包含我不需要的以下描述: 地方魅力-