我可以通过内部网址访问docker启动的服务吗?

时间:2018-07-09 11:26:55

标签: docker docker-compose

我正在使用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地址。

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

2 个答案:

答案 0 :(得分:1)

  • 要从外部访问服务(从浏览器),您需要使用主机的IP_ADDRESS。主机是指Windows / Ubuntu / Mac,是实际的计算机地址。

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

如果您需要其他详细信息,请告诉我。

答案 1 :(得分:1)

由于embedded DNS server in user-defined networks,服务名称URL可用。该DNS服务器仅用于解析网络中容器的DNS请求。

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