2017-04-05 5 views
1

私の現在のチームでは、まだDocker ToolboxからDocker for Windowsに移行中です。私たちのスクリプトの多くは、あなたが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クライアントが仮想マシンに向けられている方法は、あなたがMac用ドッカーは、このようドッカーVMにマッピングされている/var/run/docker.sockソケットに直接接続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 for Windowsも同じ方法(//./pipe/docker_engine)で名前付きパイプを使用すると考えていますので、環境内にDOCKER_HOSTの不足によってもわかるはずです。

Docker for Windowsは引き続き環境を使用する場合、ツールボックスとDocker for Windowsの変数に違いがあります。 DOCKER_HOSTは異なる範囲にあります。 DOCKER_CERT_PATHにはmachineなどは含まれません。

+0

多くの情報、ありがとうございます。私が見つけたものを報告します。 –

関連する問題