[도커][Docker] WSL에 docker 설치방법

2024. 11. 25. 12:56간단한 웹 구현 프로젝트(Inception)/docker

1. WSL에 도커설치하는 방법을 GPT가 알려준대로 나열

 

WSL에서 Docker를 CLI 환경으로 설치하는 방법을 순차적으로 안내하겠습니다. 이 과정은 Docker Desktop 없이 WSL 내에서 Docker를 설치하는 절차입니다.


1. WSL2 환경 준비

  1. WSL 설치 및 배포판 설정
    • PowerShell을 관리자 권한으로 열고 WSL2를 설치합니다:
      wsl --install
      
    • 이미 WSL1 사용 중이라면, WSL2로 변환:
      wsl --set-default-version 2
      
  2. 배포판 설치 및 실행
    • Microsoft Store에서 Ubuntu 또는 다른 배포판을 설치하고 실행합니다.
    • 배포판 실행 후 초기 사용자 설정(이름, 비밀번호)을 완료합니다.

2. Docker 설치 (CLI 환경)

  1. Docker 패키지 저장소 추가
    • WSL 내에서 아래 명령을 실행하여 Docker 설치를 위한 저장소를 추가합니다:
      sudo apt update
      sudo apt install -y ca-certificates curl gnupg
      
    • Docker의 GPG 키를 추가:
      sudo install -m 0755 -d /etc/apt/keyrings
      curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
      sudo chmod a+r /etc/apt/keyrings/docker.gpg
      
    • Docker 저장소를 추가:
      echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
      
  2. Docker 설치
    • Docker 패키지 설치:
      sudo apt update
      sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
      
  3. Docker 서비스 시작
    • Docker를 바로 실행하려면:
      sudo service docker start
      
    • 매번 수동으로 시작하지 않으려면 rootless Docker를 설정합니다(다음 섹션 참고).

3. Docker Rootless Mode 설정

  • 일반 사용자가 sudo 없이 Docker를 사용하려면:
    sudo groupadd docker
    sudo usermod -aG docker $USER
    newgrp docker
    
  • Rootless 설치 스크립트 실행:
    curl -fsSL https://get.docker.com/rootless | sh
    

4. Docker 작동 확인

  1. Docker 버전 확인
  2. docker --version
  3. 테스트 컨테이너 실행정상적으로 실행되면 설치가 완료된 것입니다.
  4. docker run hello-world

추가 참고

  • Docker 서비스 자동 시작:
  • sudo systemctl enable docker sudo systemctl start docker
  • 권한 문제 발생 시:
    • Docker 데몬이 실행 중인지 확인:
      sudo service docker status
      

필요한 추가 설정이나 궁금한 사항이 있으면 알려주세요! 🚀