在我目前的团队中,我们仍在从Docker Toolbox转换到适用于Windows的Docker。我们的许多脚本仍然假设您在VirtualBox上运行Docker Toolbox(例如,如何装载驱动器,如何使用斜杠或驱动器名称适用于这些安装)。脚本如何区分Docker Toolbox和Docker for Windows?
有没有一种可靠的方法可以告诉脚本内部docker
是来自Docker Toolbox还是Docker for Windows?
在我目前的团队中,我们仍在从Docker Toolbox转换到适用于Windows的Docker。我们的许多脚本仍然假设您在VirtualBox上运行Docker Toolbox(例如,如何装载驱动器,如何使用斜杠或驱动器名称适用于这些安装)。脚本如何区分Docker Toolbox和Docker for Windows?
有没有一种可靠的方法可以告诉脚本内部docker
是来自Docker Toolbox还是Docker for Windows?
工具箱通过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
等
很多信息,谢谢。将报告我发现的内容。 –
您是否试图在Windows主机上检测到这一点?所以从你正在运行'docker'命令的脚本? – Matt
Windows主机;码头工人预计将在PATH上。 –