Windows 10의 Docker“끝점에서 외부 연결을 프로그래밍하지 못한 드라이버”


134

$ docker-compose up -d프로젝트 에 사용하려고 하는데이 오류 메시지가 나타납니다.

오류 : api 용 api 서비스를 시작할 수 없습니다 : 드라이버가 엔드 포인트 dataexploration_api_1에서 외부 연결 프로그래밍에 실패했습니다 (8781c95937a0a4b0b8da233376f71d2fc135f46aad011401c019eb3d14a0b117) : 사용자 프록시 시작 오류 : mkdir /port/tcp:0.0.0.0:9000:tcp:172. 프로젝트를 불러오는 동안 오류가 발생했습니다.

그것이 아마도 항구인지 궁금합니다. 이전에 포트 8080을 시도했습니다. 프로젝트는 원래 Mac에서 설정되었으며 gitHub에서 저장소를 복제했습니다.


github 티켓에 대한 링크를 추가하여 우리 모두가 거기에 갈 수 있도록하십시오.
PussInBoots

답변:


270

관리자 모드에서 Windows Powershell x86을 사용하는 Windows 10 Pro / Docker v17.06.1-ce-win24 / Docker-Compose v1.14.0에서 동일한 오류 메시지가 나타납니다.

해결책은 단순히 Docker를 다시 시작하는 것이 었습니다.


Windows 10 Professional의 사용자 도커 버전 18.03.0-ce-win59 (16762)입니다. 도커 이미지는 jenkins / jenkins : 2.107.2입니다. 풀 후, 나는이 명령을 사용하여 설치 docker run -p 8080:8080 --name myJenkins -p 50000:50000 jenkins/jenkins:2.107.2합니다. jenkins 설정을 마치면 docker stop myJenkins다른 명령 창에서 사용 하고 호스트 Windows 10을 종료합니다. docker를 자동으로 시작하는 Windows 10을 시작하면 명령을 사용 docker start myJenkins하고 익숙한 메시지가 나타납니다. 그러나 도커를 다시 시작하면 문제가 해결됩니다.)
Charles Wu

1
왜 이런 일이 발생하는지 알고 있습니까? 도커를 다시 시작하면 해킹 된 것 같습니다.이 문제를 올바르게 해결할 수 있습니까?
Storm Muller

Docker Desktop 버전 2.0.0.3 (31259) 사용 채널 : 안정 빌드 : 8858db3 클라이언트 : Docker Engine-커뮤니티 버전 : 18.09.2 API 버전 : 1.39 Go 버전 : go1.10.8 Git commit : 6247962 빌드 : Sun Feb 10 04:12:31 2019 OS / Arch : windows / amd64 실험 : false Win 10 버전 10.0.18346.1 (빠른 버전의 사전 릴리스)
JohnC

Mac에서 동일한 문제가 발생하고 도커를 다시 시작해도 문제가 해결되었습니다 ... 예수 전체 도커 환경을 로컬로 다시 설치하기 전에 답변을 확인해야했습니다 .... : D cheers mate
Sosomqk

67

한 번 발생하면 Docker를 다시 시작하면 작업이 수행됩니다. 제 경우에는 컴퓨터를 다시 시작할 때마다 발생했습니다.

이 경우 빠른 시작을 비활성화 하거나 컴퓨터를 시작할 때마다 Docker를 다시 시작하십시오. 이 솔루션은 여기 에서 얻었 습니다


6
이것은 답변으로 받아 들여 져야합니다. 다시 시작 작동하지만 성
Vitalii

Windows 10에서 사용자를 전환 할 때이 오류가 발생했습니다
Vasko

58

Docker를 다시 별표로 표시해도 Windows 10에서 문제가 해결되지 않았습니다.

필자의 경우 아래의 정확한 단계로 문제를 해결했습니다.

1) "Docker Desktop"을 닫습니다

2) 아래 명령을 실행하십시오.

net stop com.docker.service
net start com.docker.service

3) "Docker Desktop"을 다시 시작하십시오

이것이 다른 누군가를 도울 수 있기를 바랍니다.


3
도커를 다시 시작한 후에 나에게 효과적입니다! 또한 관리자 권한으로이 커플을 실행하는 것을 잊지 마십시오
Gad Wissberg

그것은 효과가 있었지만 항상 관리자 권한이 없습니다 :(
Hassan Tareq

3
도커 서비스를 다시 시작하기 위해 일했습니다. 일반적으로 도커 데스크톱을 다시 시작하면 충분하지만 이번에는 그렇지 않았습니다 ... Windows 10의 도커는 정말 고통 스럽습니다 (대기 시간, 버그, 문서 등 ...)
FAjir

이것은 효과가 있었다! 진정한 대답이되어야합니다. 감사합니다
Dominik K

나를 위해 일했다 thnx!
G.Mast

9

도 커가 이미 비슷한 컨테이너를 실행하고 있기 때문에 오류가 발생하는 주된 이유를 알고 싶다면 문제를 해결하기 위해 도커를 다시 시작하지 마십시오.

docker container ls

다음과 비슷한 것을 얻었습니다.

CONTAINER ID        IMAGE               COMMAND             CREATED
1fa4ab2cf395        friendlyhello       "python app.py"     28 seconds ago

실행중인 컨테이너 목록입니다. 컨테이너 ID (복사 Ctrl+C )를 사용하십시오.

이제 프로세스를 끝내고 다른 이미지를 실행하여이 명령을 실행해야합니다.

docker container stop <CONTAINER_ID>

그리고 그게 전부입니다! 이제 컨테이너를 만들 수 있습니다.

자세한 내용은 https://docs.docker.com/get-started/part2/를 방문 하십시오.


7

나는 이미 많은 대답이 있다는 것을 알고 있지만 아무도 나를 위해 문제를 해결하지 못했습니다.
대신, docker를 공장 기본값 으로 재설정 하여이 오류 메시지를 제거했습니다 .

여기에 이미지 설명을 입력하십시오


내 경우에는 공장 기본값으로 재설정하라는 오류 메시지가 표시되어 있기 때문에 Docker에서 오류 보고서를 작성 했습니까?
Theodosios Asvestopoulos

아니요, @TheodosiosAsvestopoulos, 나는 그 팝업을 얻지 못했습니다.
jasie

이상한 오늘도 같은 문제가 발생했습니다. 도커 재시작이 도움이되지 않았습니다. 우리는 정말 큰 이미지를 가져 오기 때문에 공장 기본값으로 다시 설정하고 싶지 않았습니다. 따라서 Docker Desktop을 종료하고 다시 열어서 작동했습니다 (다시 시작하는 것과 다른 동작으로 간주 됨).
Theodosios Asvestopoulos

6

일반적 으로이 오류는 컨테이너를 시작하려고하지만 컨테이너에 필요한 포트가 일반적으로 최신 잘못된 프로세스 중지의 결과와 같은 동일한 Docker에 의해 점유 될 때 발생합니다.

나에게 해결책은 다음과 같습니다.

  1. 관리자와 같은 Windows CMD를 열고 netstat -oan포트를 점유하고있는 프로세스 (Docker가 해당 프로세스 임)를 입력 하려면 입력 하십시오.

필자의 경우 도커 포트는 3306 6001 8000 9001입니다.

  1. 이제 포트를 비워야하므로 PID (열 PID)로이 프로세스를 종료합니다.

    TASKKILL /PID 9816 /F
    
  2. 도커를 다시 시작하십시오.

  3. 행복하세요

문안 인사.


2

필자의 경우 문제는 도커 컨테이너 (Nginx)가 80 포트를 사용하고 IIS가 동일한 것을 사용한다는 것입니다. IIS에서 다른 포트를 설정하면 문제가 해결됩니다.


1

대부분의 경우 고려해야 할 첫 번째 경우는 해당 포트를 실행하고 사용하는 오래된 서비스가 있다는 것입니다. 필자의 경우 이미지 이름을 변경 한 후 docker-compose를 사용하여 중지 한 다음 이전 컨테이너 (서비스)를 중지하지 않고 새 컨테이너를 시작할 수 없습니다.


0

약간의 늦게 대답하지만 여기에 남겨 두겠습니다. Mac과 Docker를 많이 다시 시작한 후에 Mac 모하비에서 다른 사람에게 도움이 될 수 있습니다 sudo apachectl stop.


0
  • 이를 해결하는 가장 간단한 방법은 도커 재시작입니다. 그러나 포트에서 실행중인 컨테이너가없는 경우에도 작동하지 않을 수 있습니다. docker ps명령을 사용하여 실행중인 컨테이너를 확인할 수 있으며 docker ps -a명령 을 사용하기 전에 지워지지 않았지만 종료 된 모든 컨테이너를 볼 수 있습니다 .

컨테이너 ID가있는 컨테이너가 있다고 가정 8e35276e845e합니다. 명령을 사용 docker rm 8e35276e845e하거나 docker rm 8e3컨테이너를 종료 할 수 있습니다 . 처음 3 개의 문자열은 해당 특정 도커 컨테이너 ID의 ID입니다. 따라서 위 시나리오 8e3 에 따르면 id는 8e35276e845e 입니다.

  • 다시 시작해도 작동하지 않으면 docker-compose.yml 파일 에서 서비스 포트를 변경하고 아파치 포트에 따라 v-host의 포트를 변경해야합니다 (있는 경우). 문제.

전의:

    build:
      context: ./apache
      dockerfile: Dockerfile
    working_dir: /var/www/
    volumes:
      - .:/var/www
    networks:
      - app-network
    ports:
      - 8082:80
    depends_on:
      - mysql_db

로 변경해야합니다

apache_server:
    build:
      context: ./apache
      dockerfile: Dockerfile
    working_dir: /var/www/
    volumes:
      - .:/var/www
    networks:
      - app-network
    ports:
      - 8083:80
    depends_on:
      - mysql_db

특정 v-host도 변경해야합니다.

예 (위 시나리오에 따라) :

<VirtualHost *:80> 
    ProxyPreserveHost On
    ServerAlias phpadocker.lk
    ProxyPass / http://localhost:8083/
    ProxyPassReverse / http://localhost:8083/
</VirtualHost>

위의 문제를 해결하는 데 도움이됩니다.


0

동일한 문제가있는 많은 Windows 사용자의 경우 컴퓨터를 다시 시작하는 것이 좋습니다. 적어도 나에게는 Docker 만 다시 시작하는 것이 대부분 작동하지 않기 때문입니다. 따라서 다음 단계를 따르십시오.

  1. PC를 다시 시작하십시오.
  2. 그런 다음 관리자 권한으로 PowerShell을 시작하고 다음을 실행하십시오.

    Set-NetConnectionProfile -interfacealias "vEthernet (DockerNAT)" -NetworkCategory Private

  3. 그 후 Docker를 다시 시작하십시오.

이 단계를 완료하면 문제없이 실행할 수 있습니다. 도움이 되길 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.