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
.
我有一个 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
.