我正在使用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
地址。
您能否告诉我是否可以使用浏览器中基于service-url的服务来访问我的服务,还是只能在容器内部访问的内部docker地址?
答案 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名称