2017-04-05 5 views
1

Auf meinem aktuellen Team, sind wir nach wie vor von Docker Toolbox Docker für Windows Übergang. Viele unserer Skripts gehen immer noch davon aus, dass Sie Docker Toolbox auf VirtualBox ausführen (z. B. wie Sie Laufwerke mounten, wie Schrägstriche oder Laufwerksnamen für diese Mounts funktionieren).Wie unterscheidet ein Skript Docker Toolbox und Docker für Windows?

Gibt es eine zuverlässige Möglichkeit, innerhalb eines Skripts festzustellen, ob docker von Docker Toolbox oder Docker for Windows stammt?

+0

Sind Sie dies auf der Windows-Host zu erkennen versuchen? also aus dem Skript, in dem du den 'docker' Befehl ausführst? – Matt

+0

Windows-Host; Docker soll sich auf dem PATH befinden. –

Antwort

1

Toolbox arbeitet über docker-machine. Die Art und Weise der docker Client an die virtuelle Maschine gerichtet ist, ist über eine Anzahl von Umgebungsvariablen, die Sie, indem Sie 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 

Docker für Mac direkt an den /var/run/docker.sock Buchse sehen können, die in die Docker VM abgebildet wird so das ist leicht durch das Fehlen von Umgebungsvariablen zu erkennen.

Ich glaube, Docker für Windows verwendet ein benanntes Rohr in der gleichen Weise (//./pipe/docker_engine), so dass Sie auch in der Lage sein, durch das Fehlen von DOCKER_HOST in der Umgebung zu erkennen.

Wenn Docker für Windows noch die Umwelt nicht verwendet, wird es für Windows Variablen Unterschiede zwischen der Toolbox und Docker sein. DOCKER_HOST wäre in einem anderen Bereich. DOCKER_CERT_PATH nicht enthält machine usw.

+0

Viele Informationen, danke. Werde zurück melden, was ich finde. –

Verwandte Themen