我是否需要设置 Docker 网络以将容器暴露给互联网?如果需要,该如何做?

我是否需要设置 Docker 网络以将容器暴露给互联网?如果需要,该如何做?

概括

我在本地 Docker 容器中安装了本地 Jenkins 构建服务器,并将主机的 8080 端口暴露给 Jenkins 容器。

我想测试 Jenkins 与 Azure DevOps 的集成,因此 Jenkins 作为该项目的构建服务器。

Docker

我只是使用了来自 Docker Hub 的官方 jenkins/jenkins Docker 镜像并像这样运行它:

docker run -d -p 8080:8080 --name jenkins jenkins/jenkins

容器可从其访问localhost:8080并且响应良好。

Windows 10 专业版

在Windows 10防火墙中我创建了两个端口规则:

  1. 入站、TCP、本地端口:全部、远程端口:全部
  2. 入站、UDP、本地端口:全部、远程端口:全部

Bell Fibe HomeHub 2000

我为我的 IP 地址创建了一个端口转发,调制解调器将其与运行 Docker 容器的正确计算机关联起来。

Home Hub 2000 端口转发

互联网

当我尝试[public ip address]:80通过谷歌搜索“我的 IP 地址是什么”来访问我获得的网站时,我点击了此页面。

无法访问网站

相关 SF 问题

Docker 容器中的 Web 服务器无法通过 Internet 访问

我不确定如何继续,甚至不知道是否有必要。我更像是一名软件架构师,而不是系统管理员,如果我的端口转发正确,我真的不明白 Docker 网络的必要性。

答案1

您无法使用公共 IP 访问 Jenkins。如果您想公开访问 Jenkins,您需要一个具有静态公共 IP 的 VPS。并且您应该在该 VPS 中安装 Jenkins。

您通过 google 获取的 IP 是您的互联网 IP,而不是服务器 IP。

相关内容