Windows 호스트의 Windows 컨테이너를 실행하려고합니까 (Moby VM을 통해 Windows 호스트의 Linux 컨테이너가 아닌 경우)? 이 경우 명명 된 파이프 (npipe : ////./pipe/docker_engine)를 도커 볼륨으로 공유 할 수 없습니다.
소켓을 사용하는 유일한 방법 인 것 같습니다. 여기 내가 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
가 잠재적으로 당신은 단지 컴퓨터 이름을 사용하여, 위의 게이트웨이 IP를 알아내는 대신 간단한 접근 방식을 멀리 얻을 수 있습니다. 이는 중첩 된 컨테이너를 시작할 때 DNS에 액세스하여 도커 NAT 게이트웨이 IP가 아니라 호스트의 주 IP 주소가 될 IP 주소로 변환해야하기 때문에 네트워크 트래픽이 조금 더 많다는 의미입니다. 또한 Docker 데몬이 호스트의 외부 IP에서 수신 대기하므로 외부에서 액세스 할 수 있으므로 보안이 취약합니다.
그런 다음 당신은 컨테이너를 시작할 수 있습니다 그냥 ENV의 var에 DOCKER_HOST 전달합니다
docker run -it -e DOCKER_HOST ...
위의 기반이 : https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/deploy-containers-on-nano#manage-docker-on-nano-server
이 창에 그렇게 할 수있는 방법이되지 않을 수도 있습니다. 유닉스는 파일 핸들처럼 대부분의 것을 표현하는 것으로 잘 알려져 있지만 윈도우는 그렇지 않을 수도있다. – dnephin