![我是否需要设置 Docker 网络以将容器暴露给互联网?如果需要,该如何做?](https://linux22.com/image/735975/%E6%88%91%E6%98%AF%E5%90%A6%E9%9C%80%E8%A6%81%E8%AE%BE%E7%BD%AE%20Docker%20%E7%BD%91%E7%BB%9C%E4%BB%A5%E5%B0%86%E5%AE%B9%E5%99%A8%E6%9A%B4%E9%9C%B2%E7%BB%99%E4%BA%92%E8%81%94%E7%BD%91%EF%BC%9F%E5%A6%82%E6%9E%9C%E9%9C%80%E8%A6%81%EF%BC%8C%E8%AF%A5%E5%A6%82%E4%BD%95%E5%81%9A%EF%BC%9F.png)
概括
我在本地 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防火墙中我创建了两个端口规则:
- 入站、TCP、本地端口:全部、远程端口:全部
- 入站、UDP、本地端口:全部、远程端口:全部
Bell Fibe HomeHub 2000
我为我的 IP 地址创建了一个端口转发,调制解调器将其与运行 Docker 容器的正确计算机关联起来。
互联网
当我尝试[public ip address]:80
通过谷歌搜索“我的 IP 地址是什么”来访问我获得的网站时,我点击了此页面。
相关 SF 问题
Docker 容器中的 Web 服务器无法通过 Internet 访问
我不确定如何继续,甚至不知道是否有必要。我更像是一名软件架构师,而不是系统管理员,如果我的端口转发正确,我真的不明白 Docker 网络的必要性。
答案1
您无法使用公共 IP 访问 Jenkins。如果您想公开访问 Jenkins,您需要一个具有静态公共 IP 的 VPS。并且您应该在该 VPS 中安装 Jenkins。
您通过 google 获取的 IP 是您的互联网 IP,而不是服务器 IP。