假设我有一个docker
容器在端口8080上运行Web应用程序。
我还没有映射端口(在docker run
上没有映射-p 8080:8080
)
容器的IP为172.17.0.2
如果我执行172.17.0.2:8080为什么不能在主机的浏览器上看到该应用程序?
要实现这一目标我需要做什么?
P.S,我知道如何使用主机网络以及如何进行端口映射以及如何在localhost:8080上查看Web应用程序,但是我不想这样做。
我希望能够在主机上看到<容器IP>:<容器端口>。
答案 0 :(得分:1)
容器内部IP地址比其他任何东西都更具有实现细节。在许多情况下(从MacOS主机;在Docker Toolbox;在其他主机),它们是无法访问的。
您根本不需要查找容器内部的IP地址,实际上也不需要。访问容器的正确方法是删除容器,然后使用适当的docker run -p
选项重新启动容器,然后可以通过主机的IP地址和您选择的端口访问该容器。
(假设您在Docker容器外部运行相同的进程。该进程的 IP地址是什么?)
答案 1 :(得分:0)
尝试使用容器的网关而不是容器的IP。取而代之的是https://localhost:8080
172.17.0.X:8080
(不含https://
)。这对我有用。