Windows docker 설치

Docker는 개발자가 다양한 환경에서 일관되게 실행할 수 있는 경량의 휴대용 컨테이너 내에서 애플리케이션 배포를 자동화할 수 있도록 지원하는 플랫폼입니다. 다양한 개발 환경이나 데이터 파이프라인 환경 구축 등 여러 환경을 구성할 수 있도록 도와주는데요. Windows docker 를 생각 없이 next만 눌러서 설치하면 추후 골치가 살짝 아플 수 있습니다. 이번 포스트에서는 windows에서 문제 없이 docker를 설치하는 법에 대해 정리해보았습니다.

도커 설치 가능한 환경


시스템, 시스템 정보와 같은 제어판에 들어가면 윈도우 버전과 OS를 빌드를 확인 할 수 있습니다.

윈도우 버전과 빌드가 아래 조건을 만족해야 윈도우에서 리눅스 커널을 제공해 줄 수 있습니다.

  • 윈도우 10 이상
  • 1903x.xxxx 이상 버전
    만일 버전이 낮다면 윈도우 버전을 업그레이드 하면 됩니다.

윈도우 터미널 설치

우선 Microsoft Store를 찾아서 실행합니다.

‘Windows Terminal’ 을 검색하여 설치해줍니다.

CMD, PowerShell, Windows Terminal 차이

설치가 완료되면 관리자 권한으로 터미널을 실행해줍니다.

Linux용 Windows 하위 시스템 사용 (배포 이미지 서비스 및 관리도구 활성화)

Windows에서 Linux 배포를 설치하려면 먼저 “Linux용 Windows 하위 시스템” 옵션 기능을 사용하도록 설정합니다.

terminal을 관리자 권한으로 열어 실행합니다.

윈도우 터미널에서 다음 두개의 명령어를 차례대로 실행

> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Linux 커널 업데이트 패키지 다운로드

WSL 에서 사용하는 Linux 배포판 설치

Microsoft store 에서 리눅스(Ubuntu) 배포판 설치

새로 설치된 Linux 배포를 처음 시작하면 콘솔 창이 열리고 파일이 압축 해제되어 PC에 저장될 때까지 1~2분 정도 기다려야 합니다. 이후의 모든 시작은 1초도 걸리지 않습니다.

새 Linux 배포를 위한 사용자 계정 및 암호를 만들어야 합니다.

배포 버전을 WSL 2로 설정

wsl --set-version Ubuntu 2
wsl --set-default-version 2

WSL2 에서 Ubuntu 시작하기

Windows Terminal이 설치되어 있다면 새탭에서 Ubuntu를 시작할 수 있습니다.

윈도우 메뉴에서 ubuntu를 찾아서 바로 실행할 수도 있습니다.

Windows docker 설치

아래에 링크에서 Docker Desktop for Windows 를 다운 받아 설치합니다.
https://hub.docker.com/editions/community/docker-ce-desktop-windows

install required Windows components for WSL2 체크한 뒤 설치 진행

설치 완료

설치가 완료 되면 로그아웃 후 다시 도커를 실행 해 줍니다.

Windows docker 실행

도커를 실행하게 되면 회원 가입과 같은 간단한 절차 이후 도커를 이용할 수 있습니다.

Windows docker 설치 확인

터미널를 실행한 뒤 docker ps 명령어를 실행해 봅니다.

docker ps

위의 명령어는 도커 컨테이너를 조회하는 명령어인데요.

현재 실행된 컨테이너가 없기 때문에 컨테이너 정보가 조회 되지는 않습니다.

대신에 아래와 유사한 결과가 뜬다면 도커가 제대 실행 되었다는 것을 확인 할 수 있습니다.

Windows에서 Nginx 컨테이너 실행하기

docker pull 로 docker.hub 에서의 이미지를 당겨와 받고 수행할 수 있음

docker pull nginx

도커 이미지가 없더라도 docker run 명령어를 사용하여 이미지를 자동으로 당겨와 바로 수행할 수도 있습니다.

docker run -d -p 8080:80 --name my-nginx nginx
  • -p 옵션은 포트 포워딩을 해줄 수 있는건데요. 컨테이너에서는 80 포트로 열고 우리 OS에서는 8080 포트로 열어주겠다는 의미 입니다.
  • — name 생성할 컨테이너 이름

docker ps 명령어를 이용하여 현재 수행 중인 docker 컨테이너 목록을 조회

docker ps

docker exec -it my-nginx 를 사용하여 수행중인 컨테이너 안으로 들어갈 수 있음

docker exec -it my-nginx /bin/bash

컨테이너에 성공적으로 들어가면 프롬프트가 우분투 형식으로 변경된 것을 확인 할 수 있습니다.

exit 명령어를 통해 컨테이너에서 빠져 나올 수 있습니다.

docker images 명령어를 사용해 시스템에서 다운 받은 docker image 리스트를 조회해 볼 수 있음

docker images

docker stop을 이용해 수행중인 컨테이너를 종료 시킬 수 있음

docker stop my-nginx

docker rmi 를 이용해 도커 이미지를 시스템에서 삭제할 수 있음

docker rmi nginx

도커 주요 명령어

CommandDescription
docker buildDockerfile에서 이미지를 빌드합니다.
docker run새 컨테이너에서 명령을 실행합니다.
docker pull레지스트리에서 이미지나 저장소를 가져옵니다.
docker push이미지 또는 저장소를 레지스트리에 푸시합니다.
docker images이미지를 나열합니다.
docker ps컨테이너 목록을 조회합니다.
docker ps -a중지된 컨테이너를 포함하여 모든 컨테이너를 조회합니다
docker start하나 이상의 중지된 컨테이너를 시작합니다
docker stop하나 이상의 실행 중인 컨테이너를 중지합니다.
docker restart하나 이상의 컨테이너를 다시 시작합니다.
docker rm하나 이상의 컨테이너를 제거합니다.
docker rmi하나 이상의 이미지를 제거합니다.
docker exec실행 중인 컨테이너에서 명령을 실행합니다.
docker logs컨테이너의 로그를 가져옵니다.
docker inspectDocker 개체에 대한 하위 수준 정보를 반환합니다.
docker-compose updocker-compose.yml 파일에 정의된 서비스에 대한 컨테이너를 빌드하고, (재)생성하고, 시작하고, 연결합니다.
docker-compose down컨테이너를 중지하고 docker-compose up으로 생성된 컨테이너, 네트워크, 볼륨 및 이미지를 제거합니다.
docker-compose builddocker-compose.yml 파일에 정의된 서비스를 빌드하거나 다시 빌드합니다.
docker-compose pulldocker-compose.yml 파일에 정의된 서비스 이미지를 가져옵니다.
docker-compose psdocker-compose.yml 파일에 정의된 서비스와 관련된 컨테이너를 나열합니다.
docker network ls네트워크를 조회합니다.
docker network create네트워크를 생성합니다ㅣ.
docker network rm하나 이상의 네트워크를 제거합니다.
docker volume ls볼륨들을 조회합니다.
docker volume create볼륨을 생성합니다.
docker volume rm하나 이상의 볼륨을 제거합니다.
docker cp컨테이너와 로컬 파일 시스템 간에 파일/폴더를 복사합니다.
docker loginDocker 레지스트리에 로그인합니다.
docker logoutDocker 레지스트리에서 로그아웃합니다.

참고하면 좋은 글

Leave a Comment

목차