【问题标题】:Can I reach docker started services via internal url?我可以通过内部 url 访问 docker 启动的服务吗?
【发布时间】:2018-07-09 11:26:54
【问题描述】:

我正在使用 docker 容器运行应用程序。我用 docker-compose 运行它。例如有 arangodb 依赖:

  arangodb:
image: localartifactiory/arangodb:3.2.5
volumes_from:
  - arangodb_data
ports:
  - 8530:8529
environment:
  - ARANGO_ROOT_PASSWORD=admin

我可以使用http://localhost:8530 访问该服务,但我无法在浏览器中使用服务名称http://arangodb:8530http://arangodb:8529 访问它,但看起来我的应用程序通过http://arangodb:8529 地址连接到此数据库。

您能否告诉我是否可以从浏览器使用基于服务的 url 访问我的服务,还是只能在容器内访问的内部 docker 地址?

【问题讨论】:

    标签: docker docker-compose


    【解决方案1】:

    服务名称 url 由于embedded DNS server in user-defined networks 而可用。此 DNS 服务器仅用于解析属于网络的容器的 DNS 请求。

    查看Query docker embedded dns from host 了解如何使用嵌入式 DNS 服务器解析 DNS 名称

    【讨论】:

      【解决方案2】:
      • 要从外部访问服务(从浏览器),您需要使用主机的 IP_ADDRESS。主机是指Windows/Ubuntu/Mac,实际机器地址。

      • 要在内部从一个容器访问服务到另一个容器,您可以使用容器名称(例如http://arangodb:8529)。

      如果您需要更多详细信息,请告诉我。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-20
        • 1970-01-01
        • 1970-01-01
        • 2022-07-02
        • 2010-11-15
        • 2020-03-04
        • 2011-10-25
        • 2014-12-22
        相关资源
        最近更新 更多