映射端口以访问Web界面

映射端口以访问Web界面

我有一个准系统服务器,运行Linux,但没有安装图形界面。它仅在命令行中工作,我们不想改变它。

该服务器的IP地址是192.168.1.6

在这台机器上我们运行码头工人使用多个容器。其中一个容器是一个可通过 port 访问的 Web 应用程序80

当我curl localhost使用准系统 Linux 时,我拥有网页的原始数据。我想查看同一 LAN 上每台计算机的网络应用程序。以机器上为例192.168.1.7,我想在浏览器中输入192.168.1.6并查看网络应用程序。

首先,这可能吗?如果是,您能给我一些指导吗?

答案1

有很多方法可以做到这一点,最简单的就是使用 Docker 的内置网络。

$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
6ef2c6836690        bridge              bridge              local
db24b1e2be58        host                host                local
edf606d533a5        none                null                local

默认情况下,您的容器会进入bridge网络,除非您在docker run....

$ docker run -P -d -p 12345:80 nginxdemos/hello

执行此操作后,LAN 上的任何主机都可以使用 Docker 主机的 IP + 端口来访问它:

$ curl -I http://192.168.56.101:12345/
HTTP/1.1 200 OK
Server: nginx/1.13.8
Date: Fri, 27 Jul 2018 08:26:02 GMT
Content-Type: text/html
Connection: keep-alive
Expires: Fri, 27 Jul 2018 08:26:01 GMT
Cache-Control: no-cache

防火墙

请记住,您的 Docker 主机的防火墙可能是导致流量无法进出 Docker 容器的原因。在某些情况下,您可能需要将 Docker Host 的端口(在上面的示例中为 12345)添加到允许列表,以便 Docker Host 外部的主机可以访问此端口。

参考

相关内容