我有一个运行Linux的准系统服务器,但未安装图形界面。它仅在命令行中工作,我们不想更改它。
该服务器的IP地址是 192.168.1.6
在这台机器上,我们运行Docker以使用多个容器。容器之一是可通过port访问的Web应用程序80
。
当我curl localhost
使用准系统Linux时,我具有网页的原始数据。我想从同一局域网中的每台计算机上看到该Web应用程序。通过在Machine上的示例192.168.1.7
,我想输入浏览器192.168.1.6
并查看Web应用程序。
首先,有可能吗?如果是,您能给我一些指导吗?
有许多方法可以做到这一点,最直接的方法就是使用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 Host的防火墙可能是导致流量无法进出Docker容器或从Docker容器进出的原因。在某些情况下,您可能需要将Docker主机的端口(在上面的示例中为12345)添加到允许列表,以便Docker主机外部的主机可以访问此端口。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句