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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我可以通过内部网址到达docker启动的服务吗?相关的知识,希望对你有一定的参考价值。

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

答案

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

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

另一答案
  • 要从外部访问服务(从浏览器),您需要使用主机的IP_ADDRESS。主机是指Windows / Ubuntu / Mac,实际的机器地址。
  • 要从一个容器内部访问服务到另一个容器,您可以使用容器名称(例如http://arangodb:8529)。

如果您需要任何进一步的细节,请告诉我。

以上是关于我可以通过内部网址到达docker启动的服务吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何进入到Docker容器内部

2 个 docker 容器可以(或应该)通过 localhost 相互交互吗?

将应用程序 docker 化会增加应用程序的启动时间吗?

我应该在(Docker)容器中使用 forever/pm2 吗?

docker中容器有必要挂载到主机上吗存储

一个请求会进入多个docker容器吗