2016-09-20 14 views
2

ドッカークライアントを使用してドッカーデーモンに接続するアプリケーションがあります。私はこのアプリケーションをコンテナの中から実行します。そのために、私はUbuntuとMacOSの両方で次のコマンドを使用して、私のコンテナを実行しています:最近Windows 10のdocker.sockに相当するものは何ですか?

docker run -d -v /var/run/docker.sock:/var/run/docker.sock someimage 

、私のWindowsマシン上で、私はDocker for Windowsをインストールし、何

/var/run/docker.sock 

ファイルはありません。 Windows上のdocker.sockファイルに相当するものがわかりません。

アップデート:私は(https://github.com/docker/docker/search?utf8=%E2%9C%93&q=DefaultDockerHost )[ドッキングウィンドウのリポジトリ]にWindows上でdocker.sockの同等のを見つけましたが、それでも私は使用してボリュームをマッピングする方法がわからない:

npipe:////./pipe/docker_engine** path 
+0

上記
docker run -it -e DOCKER_HOST ... 

はに基づいています。 Unixは、ほとんどのものをファイルハンドルとして表すことでよく知られていますが、ウィンドウはそうではありません。 – dnephin

答えて

0

最初に/ var/runの/docker.sockは、boot2docker仮想マシン内の同じパスを参照します。 /var/run/docker.sockを書き直してください

1

WindowsコンテナはWindowsホスト上にあります(WindowsホストのLinuxコンテナはMoby VM経由ではありません)。 この場合、名前付きパイプ(npipe:////./pipe/docker_engine)をドッカーボリュームとして共有することはできません。

TCPソケットを使用することが唯一の選択肢と思われます。ここ は、私はPowerShellではそれをやった方法です:

# Open firewall 
# TODO: allow access only from internal nat-ed containers 
netsh advfirewall firewall add rule name="Docker daemon " dir=in action=allow protocol=TCP localport=2375 

# Find gateway ip address for internal docker nat network, set DOCKER_HOST based on it 
$gatewayIpAddress = (docker network inspect nat | ConvertFrom-Json).IPAM.Config[0].Gateway 
$dockerHost = "tcp://${gatewayIpAddress}:2375" 
$Env:DOCKER_HOST = $dockerHost 
[Environment]::SetEnvironmentVariable("DOCKER_HOST", $dockerHost, "Machine") 

# Reconfigure docker daemon to use TCP 
'{ "hosts": ["' + $dockerHost + '"] }' | Set-Content 'C:\ProgramData\docker\config\daemon.json' 

Restart-Service docker 

# Smoke Test 
docker version 

潜在的にあなただけのCOMPUTERNAMEを使用し、代わりに上記のゲートウェイIPを見つけるの簡単な方法で逃げることができます。これは、ネッカーされたコンテナを起動するときに、NATにアクセスする必要があるため、通常はホストのメインIPアドレスであるIPアドレスに解決する必要があるため、ネットワークトラフィックが少し増えることを意味します。また、Dockerデーモンがホストの外部IPをリッスンするため、外部からのアクセスが可能になるため、Dockerデーモンの安全性が低下します。

その後、コンテナを開始することができますし、ただのenvするvar DOCKER_HOSTを渡す:Windows上でそれを行う方法がない可能性がありhttps://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/deploy-containers-on-nano#manage-docker-on-nano-server

+1

これは本当の答えです。どうもありがとう! – koelkastfilosoof

関連する問題