使用 Docker 时,您通常将构成堆栈的服务容器化,并使用容器间网络在它们之间进行通信。有时,您可能需要一个容器来与主机上尚未容器化的服务进行通信。以下是如何访问Docker 容器localhost或127.0.0.1从 Docker 容器中访问。
简单的选择
适用于 Windows 和 Mac 的 Docker Desktop 18.03+ 支持host.docker.internal作为localhost. 在您的容器内使用此字符串来访问您的主机。
- localhost和127.0.0.1– 这些解析为容器。
- host.docker.internal – 这解析到外部主机。
如果您在主机上运行 MySQL 服务器,Docker 容器可以通过连接到host.docker.internal:3306. 当您在 Windows 或 Mac 机器上工作时,这是最简单的技术。
在Linux上泊坞窗引擎可让使用者host.docker.internal通过太–add-host标志docker run。使用此标志启动容器以公开主机字符串:
docker run -d --add-host host.docker.internal