Dandy Now!
  • 윈도우에서 Docker 설치 시 겪었던 난관, 그리고 해결
    2025년 07월 07일 12시 40분 04초에 업로드 된 글입니다.
    작성자: DandyNow
    728x90
    반응형

    윈도우에서 Docker 설치 시 겪었던 난관, 그리고 해결!

    컨테이너 기술의 매력에 빠져 윈도우 환경에 도커 데스크톱(Docker Desktop)을 설치하려 했다. 하지만 생각보다 쉽지 않은 문제에 부딪혔고, 여러 시행착오 끝에 해결할 수 있었다. 이 글에서는 윈도우에서 Docker를 설치하며 겪었던 문제와 해결 과정, 그리고 Docker 설치 후 Nginx 이미지를 성공적으로 사용하는 방법까지 자세히 공유한다.

    1. 첫 번째 난관: error during connect 메시지

    도커 데스크톱 설치 후, 가장 먼저 시도한 docker pull nginx 명령어에서부터 예상치 못한 오류를 만났다.

    • 오류 메시지: error during connect: Post "http://%2F%2F.%2Fpipe%2FdockerDesktopLinuxEngine/v1.49/images/create?fromImage=docker.io%2Flibrary%2Fnginx&tag=latest": open //./pipe/dockerDesktopLinuxEngine: The system cannot find the file specified.

    이 메시지는 도커 데몬(Docker daemon)에 연결하지 못할 때 발생하는 문제였다. 즉, 도커 서비스가 제대로 실행되지 않고 있다는 뜻이다.

    1) 문제 해결 시도: WSL 2 상태 확인

    처음에는 WSL(Windows Subsystem for Linux) 2 문제일 것이라 짐작했다. wsl --list --verbose 명령어를 통해 WSL 배포판의 상태를 확인했다.

    wsl --list --verbose

    결과는 Ubuntu Stopped였다. Ubuntu 배포판이 중지되어 있었던 것이다.

    2) 문제 해결 시도: WSL Ubuntu 시작

    WSL Ubuntu를 시작하기 위해 wsl --start Ubuntu 명령을 시도했지만, 아쉽게도 --start 옵션이 지원되지 않는다는 메시지를 받았다.

    잘못된 명령줄 인수: --start

    이는 사용하는 WSL 버전에서 해당 옵션을 지원하지 않기 때문이었다. 대신, Ubuntu 애플리케이션을 직접 실행하는 방법을 택했다. 시작 메뉴에서 'Ubuntu'를 검색해 실행하면, 자동으로 WSL 배포판이 Running 상태로 변경된다.

    C:\Users\d\Documents\GitHub>wsl --list --verbose
      NAME           STATE           VERSION
    * Ubuntu         Running         2

    Ubuntu 배포판이 Running 상태로 바뀌었음을 확인했다. 이제 도커가 정상 작동할 것이라 기대하며 docker pull nginx를 다시 시도했지만, 여전히 같은 error during connect 메시지가 나타났다. WSL 문제는 해결되었지만, 도커 데스크톱과 WSL 백엔드 간의 통신에 다른 문제가 있었던 것이다.

    2. 두 번째 난관: Docker Engine stopped 및 예기치 않은 오류

    이 시점에서 도커 데스크톱 애플리케이션을 확인해보니, Docker Engine stopped라는 메시지가 표시되어 있었다. 또한, 재시작을 시도할 때 An unexpected error occurred라는 창이 뜨면서 com.docker.build: exit status 1이라는 오류 메시지를 함께 보였다. 이는 도커 엔진 자체가 시작되지 못하고 있음을 의미했다.

    1) 문제 해결 시도: Docker Desktop 초기화

    이러한 상황에서는 Docker Desktop 자체의 설정 문제나 손상이 원인일 가능성이 높다고 판단했다. 오류 창에 바로 보이는 "Reset to factory defaults" 버튼이 해결책일 것이라 생각하고 이를 클릭했다.

    주의할 점: 이 초기화 작업은 로컬에 다운로드된 모든 도커 이미지와 컨테이너를 삭제하므로, 중요한 작업 중이었다면 미리 백업해야 한다. 새로 설치하는 과정이었기에 부담 없이 진행할 수 있었다.

    초기화가 완료되자 도커 데스크톱이 자동으로 재시작되었다.

    2) 문제 해결 시도: 결정적인 해결 방법 (WSL, Docker Login, PC 재부팅)

    이전 단계들을 거쳤음에도 불구하고 여전히 문제가 발생했을 때, 몇 가지 핵심적인 조치를 동시에 취했다.

    1. WSL 설치 확인 및 업데이트: wsl --update 명령어를 사용하여 WSL이 최신 상태인지 확인했다. 또한, wsl --shutdown 명령으로 모든 WSL 가상 머신을 강제로 종료하여 깨끗한 상태에서 시작하도록 했다.
    2. Docker Desktop 로그인: 도커 데스크톱이 Docker Hub 계정에 로그인되어 있지 않다는 점을 확인하고, 로그인을 진행했다. 기본적인 pull 명령어는 로그인이 필수는 아니지만, 일부 환경에서는 통신 문제 해결에 도움이 될 수 있다고 판단했다(다른 Windows 운영체제 PC에서 설치를 진행한 경우에는 로그인 없이도 정상 동작했음).
    3. PC 재부팅: 가장 중요하다고 생각하는 단계이다. WSL 설치, 업데이트 및 Docker Desktop 관련 변경 사항이 시스템에 완전히 반영되도록 PC를 재부팅했다.

    이 세 가지 조치를 함께 진행한 후, 도커 데스크톱을 다시 실행했다.

    3. 성공적인 도커 설치 및 Nginx 이미지 사용 예제

    위의 모든 단계를 거친 후, 드디어 도커 데스크톱이 정상적으로 실행되는 것을 확인할 수 있었다. 시스템 트레이의 도커 아이콘도 초록색으로 활성화되었고, 애플리케이션 화면에서도 더 이상 stopped 메시지가 보이지 않았다.

    1) Nginx 이미지 다운로드

    Powershell 또는 명령 프롬프트에서 다음 명령어를 실행하여 Nginx 이미지를 도커 허브(Docker Hub)에서 다운로드했다.

    docker pull nginx

    명령어 실행 결과는 다음과 같았다.

    C:\Users\d\Documents\GitHub>docker pull nginx
    Using default tag: latest
    latest: Pulling from library/nginx
    3da95a905ed5: Pull complete
    6c8e51cf0087: Pull complete
    9bbbd7ee45b7: Pull complete
    48670a58a68f: Pull complete
    ce7132063a56: Pull complete
    23e05839d684: Pull complete
    ee95256df030: Pull complete
    Digest: sha256:93230cd54060f497430c7a120e2347894846a81b6a5dd2110f7362c5423b4abc
    Status: Downloaded newer image for nginx:latest
    docker.io/library/nginx:latest

    성공적으로 이미지가 다운로드되었음을 알 수 있다.

    2) 다운로드된 이미지 확인

    다운로드된 이미지가 시스템에 잘 저장되었는지 docker image ls 명령어로 확인했다.

    docker image ls

    결과는 다음과 같다.

    REPOSITORY      TAG             IMAGE ID        CREATED         SIZE
    nginx           latest          9592f5595f2b    12 days ago     192MB

    nginx:latest 이미지가 192MB 크기로 정상적으로 목록에 나타났다.

    3) Nginx 컨테이너 실행 및 웹 접속

    이제 다운로드한 Nginx 이미지를 사용하여 웹 서버 컨테이너를 실행했다.

    docker run --name my-nginx -p 80:80 -d nginx
    • --name my-nginx: 컨테이너에 my-nginx라는 이름을 부여했다.
    • -p 80:80: 내 컴퓨터(호스트)의 80번 포트를 컨테이너 내부의 Nginx가 사용하는 80번 포트와 연결했다.
    • -d: 컨테이너를 백그라운드(detached mode)에서 실행하여 터미널을 계속 사용할 수 있도록 했다.

    컨테이너가 잘 실행되는지 확인하기 위해 docker ps 명령어를 사용했다.

    docker ps

    my-nginx 컨테이너가 Up 상태로 표시되면 성공이다.

    마지막으로, 웹 브라우저를 열고 http://localhost/ 주소로 접속했다. 예상대로 "Welcome to nginx!" 페이지가 나타났고, 이로써 윈도우에 도커 설치 및 Nginx 웹 서버 컨테이너 실행까지 모든 과정을 성공적으로 마칠 수 있었다.

    4. 결론

    윈도우에서 도커 데스크톱을 설치하는 과정은 단순히 프로그램을 설치하는 것을 넘어 WSL 2와 같은 백엔드 기술에 대한 이해와 설정이 동반되어야 한다. 특히 error during connectDocker Engine stopped와 같은 오류는 대부분 WSL 환경 문제, 도커 데스크톱의 내부 서비스 오류, 혹은 방화벽/백신 소프트웨어와의 충돌에서 비롯된다.

    내 경험상 WSL 설치 및 업데이트, 도커 데스크톱 로그인(필수 아님), 그리고 이 모든 변경 사항이 완전히 적용되도록 PC 재부팅이 문제 해결에 결정적인 역할을 했다.

    728x90
    반응형
    댓글