我可以通过内部网址到达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:8530
或http://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启动的服务吗?的主要内容,如果未能解决你的问题,请参考以下文章
2 个 docker 容器可以(或应该)通过 localhost 相互交互吗?