2017-04-05 98 views
1

在我目前的团队中,我们仍在从Docker Toolbox转换到适用于Windows的Docker。我们的许多脚本仍然假设您在VirtualBox上运行Docker Toolbox(例如,如何装载驱动器,如何使用斜杠或驱动器名称适用于这些安装)。脚本如何区分Docker Toolbox和Docker for Windows?

有没有一种可靠的方法可以告诉脚本内部docker是来自Docker Toolbox还是Docker for Windows?

+0

您是否试图在Windows主机上检测到这一点?所以从你正在运行'docker'命令的脚本? – Matt

+0

Windows主机;码头工人预计将在PATH上。 –

回答

1

工具箱通过docker-machine工作。该docker客户端定向到虚拟机的方式是通过一些环境变量,你可以通过运行看docker-machine env default

SET DOCKER_TLS_VERIFY=1 
SET DOCKER_HOST=tcp://192.168.99.100:2376 
SET DOCKER_CERT_PATH=/user/.docker/machine/machines/default 
SET DOCKER_MACHINE_NAME=default 
REM Run this command to configure your shell: 
REM  @FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd default') DO @%i 

码头工人的Mac直接连接到被映射到泊坞VM所以这个/var/run/docker.sock插座很容易通过缺乏环境变量来检测。

我相信Docker for Windows以相同的方式使用命名管道(//./pipe/docker_engine),所以您还应该能够通过在环境中缺少DOCKER_HOST来判断。

如果Docker for Windows仍在使用该环境,则Toolbox和Docker for Windows变量之间会存在差异。 DOCKER_HOST将在不同的范围内。 DOCKER_CERT_PATH将不包括machine

+0

很多信息,谢谢。将报告我发现的内容。 –

相关问题