Docker containers/VM 跨平台的一致主机名?

Consistent hostname for Docker containers/VM across platforms?

我有一个 docker-compose.yml 文件启动我的应用程序服务器。然后我使用一些不同的工具来 运行 integration/stress 测试它。

但是,在我的 Mac 上,应用程序服务器在 localhost 上启动,而在 Windows 上,它在 192.168.99.100 上的 VirtualBox VM 上启动。

我听说 docker-machine ip 是 "find" 您的 Docker 容器的跨平台方式,适用于 Windows:

Craig@Work-PC MINGW64 ~
$ docker-machine ip
192.168.99.100

但是在我的 Mac:

craig$ docker-machine ip
Error: No machine name(s) specified and no "default" machine exists

有没有办法使用docker-machine或其他一些已经建立的方法以跨平台的方式查找容器主机名?

我的目标是在新的 Mac 和新的 Windows 环境中开箱即用,无需任何配置。我可以更新我所有的脚本来检查 Windows vs Mac (vs Unix),但是我必须在一堆不同的地方复制逻辑。

Docker 机器在您的环境中提供了一个围绕设置 $DOCKER_HOST 的包装器。所以你可以检查这个变量,如果它被定义剥离端口号,那就是你的目标 IP。如果未定义,则可以使用 localhost.