2016-09-20 3 views
2

도커 클라이언트를 사용하여 도커 데몬에 연결하는 응용 프로그램이 있습니다. 컨테이너 내부에서이 응용 프로그램을 실행합니다. 이를 위해, 나는 우분투와 맥 OS 모두에서 명령을 다음과 같이 내 컨테이너를 실행하고 있습니다 :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

이 창에 그렇게 할 수있는 방법이되지 않을 수도 있습니다. 유닉스는 파일 핸들처럼 대부분의 것을 표현하는 것으로 잘 알려져 있지만 윈도우는 그렇지 않을 수도있다. – dnephin

답변

0

첫 번째는/var/실행 /docker.sock은 boot2docker 가상 시스템에서 동일한 경로를 나타냅니다. /var/run/docker.sock을 올바로 작성하십시오.

1

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

+1

이것은 실제 답변입니다. 고마워요! – koelkastfilosoof

관련 문제