将 docker 容器暴露给互联网

时间:2021-03-08 10:05:45

标签: docker port router

我使用 docker 在我的服务器上部署了一个幽灵博客平台。现在我想将它公开到互联网上,但我在这样做时遇到了一些困难。

我在路由器中打开了端口 8000,并将其转发到端口 32769,这是分配给该容器的端口。在我的网络中使用端口 32769 我可以正常访问该网站,但是当我尝试从 Internet 访问它时它会出现 took too long to respond 错误。

本地 IP + 端口:http://10.0.0.140:32769/

Docker 端口配置

端口测试器

路由器设置

这个帖子也被添加到Super User,因为有人说它会在那里得到更好的回应。

1 个答案:

答案 0 :(得分:2)

假设您在 docker 中的应用程序现在正在端口 8000 上运行 您想将您的应用程序公开到互联网。 请求将是:互联网 -> 路由器 -> 物理计算机(主机)-> docker。

  1. 您需要将应用程序导出到主机,这可以通过 Dockerfile 中的 EXPOSE 8000 指令完成。 该端口应该首先可以从您的主机访问,因此,当将您的 docker 镜像作为 docker 容器启动时,您应该添加 -p 参数,例如 sudo docker run -d -it -p 8000:8000 --name docker_contaier_name docker_image_name 从现在开始,您的 docker 应用程序可以在您的主机中访问,假设它是您的物理计算机。
  2. 将端口从路由器转发到主机 这一次,您可能想要按照您在问题中所做的那样做。
  3. 从互联网访问您的应用程序。 如果我的想法是正确的,IP 地址 10.0.0.140 只是您的计算机 LAN IP 地址,它无法从 Internet 访问。 您只能通过互联网 IP 连接到您的应用程序,为此,您可以检查您的路由器以查看您的 WAN IP 地址,该地址将由您的互联网服务提供商分配给您的路由器。或者用“我的 IP 是什么”去谷歌