【问题标题】:How to publish a web site running in a docker container on production?如何在生产环境中发布在 docker 容器中运行的网站?
【发布时间】:2019-08-27 12:39:40
【问题描述】:

我有一个 Web 应用程序在生产服务器上的 docker 容器中运行。现在我需要向这个应用程序发出 API 请求。所以,我有两种可能: 1)链接域 2) 直接通过IP发起请求

我为此使用了云服务器。在我以前的经验中,我将域链接到一个文件夹。但现在我不知道如何将域链接到 ip_addr:port 上正在运行的容器。

我找到了这个链接 https://docs.docker.com/v17.12/datacenter/ucp/2.2/guides/user/services/use-domain-names-to-access-services/ 但它适用于 docker enterprice。暂时无法使用。

【问题讨论】:

  • 您能否提供更多有关部署的详细信息,以便我们更好地为您提供帮助?运行docker inspect <containerID> 会帮助我们很多。另外,这是您拥有的生产服务器吗?它在云中的虚拟机上吗?您知道运行容器的服务器与公共 Internet 之间的网络层吗?为了通过域名引用您的容器,您需要设置一条 A 记录以指向您的容器所在的服务器的 IP 地址。为了更好地帮助您,我们必须知道您的域名服务提供商是谁..

标签: docker nginx dns port


【解决方案1】:

最好的方法是使用 kubernetes,因为它可以简化许多操作。不过docker-compose也可以用。

如果您想简单地使用 docker 进行部署,可以通过将 hostPort 映射到 containerPort 来完成。

【讨论】:

    【解决方案2】:

    要在不使用 compose 或其他编排工具(如 Kubernetes)的情况下向公众公开 docker 应用程序,您可以使用 docker run -p hostPort:containerPort 选项公开您的容器端口。确保您的应用程序正在侦听容器内的 0.0.0.0:[container port]。要从外部访问服务,您将使用主机的 IP 以及容器端口已映射到的端口。

    查看更多here

    如果您想链接到某个域,您可以更新您的 DNS 记录以将您的域指向您的主机 IP 地址。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-26
      • 2020-09-26
      • 1970-01-01
      • 1970-01-01
      • 2021-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-07
      相关资源
      最近更新 更多