【问题标题】:How do I create a url to reach docker service running on linux server如何创建一个 url 以访问在 linux 服务器上运行的 docker 服务
【发布时间】:2020-09-13 05:47:47
【问题描述】:

我想公开一个在 Linux 服务器上的端口说 X 上运行某些服务的 docker 容器,以便使用 URL 说 http:// / 进行访问?应该是什么步骤?

【问题讨论】:

    标签: linux docker hosting


    【解决方案1】:

    您需要将您的容器端口公开给主机,然后您才能访问它。下面是Nginx的示例

    docker run -p 80:80 nginx
    

    因为-p 将容器端口80 暴露给主机端口80。然后,您可以在浏览器上点击localhost:80127.0.0.1:80machineIP:80 访问该服务

    【讨论】:

    • 这已经完成了。但我想使用一些 URL 访问服务,比如 hostname/service_name。因此,任何人都可以使用此 URL 来使用它,而无需提供端口号
    • 为此,您需要托管一个 DNS 服务器并将其添加到您的 DNS 服务器中,这会将其指向机器 IP
    • 对于标准 HTTP-over-TLS,端口号必须是 443(对于不安全的纯 HTTP,端口号必须是 80)。
    【解决方案2】:

    你可以通过将你的 docker 本地端口暴露给你的主机来做到这一点

    docker run -p hostport:containerport nginx
    

    您也可以为多个端口执行此操作

    docker run -p 80:80 -p 5000:5000 nginx
    

    现在你有http://localhost:port

    您有多种方法可以在您的机器中添加域

    1. 您可以通过将域添加到主机 IP 来添加 URL。 它需要您的主机 IP 端口转发。

    2. 您可以使用https://ngrok.com 获得域的免费 IP,无需端口转发。

    3. 另外,您可以通过编辑您的机器主机文件在本地执行此操作

    【讨论】:

      【解决方案3】:

      您需要的是在 docker 中运行的代理服务器以及您的服务。可以为此设置 Nginx、Apache 或 Traefik。这个想法是只有代理实际上有一个暴露的端口,它会根据路径在内部 Docker 网络上将流量路由到需要去的地方。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-23
        • 2020-01-22
        • 1970-01-01
        • 2020-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-02
        相关资源
        最近更新 更多