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