Docker 완벽 가이드.2 – 설치를 해볼까요?
이번 시간에는 Windows 11 환경에서 Docker를 설치하는 방법을 알아보겠습니다.
도커는 설치 환경에 따라 약간의 차이가 있기 때문에, 사용하는 운영체제에 맞춰 정확하게 설치하는 것이 중요합니다.
특히 윈도우에서는 WSL2(Windows Subsystem for Linux) 설정이 선행되어야 하므로, 이 부분도 함께 안내해드리겠습니다.
혹시 docker가 뭐냐 왜 써야 되냐 하는등의 개요부분이 궁금하면 이전글을 참고 하시면 됩니다.
설치 후 확인 방법까지 순서대로 따라오시면 됩니다.
1.Docker 윈도우 프로그램 다운로드
모든 설치의 시작은 너무 당연하지만 프로그램 다운로드입니다. Docker 홈페이지를 가서 다운로드를 진행해 줍니다.
프로그램을 다운로드 받았으면 바로 더블클릭하여 실행을 해줍니다.
설치방법이여 별로 어려울건 없습니다. 다음 다음만 하면 되는 수준이지만 최초 설치시에 중요한 옵션을 체킹 해야 합니다.
설치 옵션에 기본값으로 체크 되어 있는 use WSL 2 insted of Hyper-v(remommended)는 꼭 체킹을 해주셔야 합니다.

참고 : WSL 2란?
Window Subsystem for Linux 2로 쉽게 말해 윈도우 안에서 리눅스 커널을 직접 올려서 돌리게 해주는 기술입니다. 기존 파일 시스템 흉내정도만 내던 WSL1과 다르게 WSL 2는 진자 리눅스 커널이 뜹니다.
즉 여기서 뜬다는 말은 윈도우에서 리눅스 커널을 메모리에 직접 올려서 실행한다는 뜻입니다.
가짜 리눅스가 아니고 진짜 리눅스가 작동되는것이며 리눅스 시스템 일부가 아니라 커널 자체가 돌아감니다. 오늘은 Docker 설치 포스팅이므로 리눅스나 이와 같은 제반사항 설명은 여기까지 하겠습니다.
설치 진행을 하게 되면 뭔가를 막 설치하기 시작합니다. 설치에는 시간이 좀 소요가 되니 기다리면 되겠습니다.

설치가 완료가 되면 pc를 리스타트 해야 합니다. 재부팅하고 옵니다.
설치 후 부팅하면 자동으로 창이 하나 떠 있습니다. accept를 해야하는 부분입니다. 또한 wsl을 업데이트 하라는 콘솔창도 나옵니다. 파워쉘이나 cmd를 띄워서 wsl.exe –update를 해줍니다.



도커창에서 Finish setting up Docker Desktop에서는 기본 값인 use recommended settings를 선택하고 Finish를 눌러 완료를 합니다.
콘솔창에서 docker –version을 해서 잘 설치 되었는지 확인하는것도 좋습니다.

welcome docker 창이 뜨고 가입 안내 문구가 뜹니다. 개인적으로 사용할 떄에는 굳이가입을 안해도 되니 지금은 skip을 눌러 넘어가줍니다.

설문조사 창도 skip을 해서 넘어갑니다.
첫화면이 뜨는데 간단하게 각 메뉴를 설명해보겠습니다.
먼저 왼쪽 메뉴 입니다.
Containers: 실행 중인 컨테이너를 관리하는 곳. 현재 실행 중인 컨테이너 목록이 여기 표시됨. 현재 활성화 되어 있는 컨테이너 목록
Images: 사용 중인 도커 이미지 목록. 도커 이미지가 없으면 여기에서 다운로드하여 사용할 수 있음.
Volumes: 데이터 저장을 위한 볼륨 관리 (데이터는 컨테이너가 삭제되어도 유지).
Builds: 도커 이미지를 빌드할 때 사용되는 기능.
Docker Hub: 도커 이미지를 다운로드하거나 업로드할 수 있는 도커 공식 레지스트리.
Extensions: 도커 확장 프로그램을 관리할 수 있는 곳.
항목 | Containers | Images | Volumes |
---|---|---|---|
정의 | 실행 중인 앱 환경. 프로그램이 실제로 동작하는 공간. | 앱 실행에 필요한 프로그램과 라이브러리 등을 포함한 템플릿. | 컨테이너 데이터 저장소. 데이터는 컨테이너가 삭제되어도 유지됨. |
용도 | 실행 중인 컨테이너를 관리하고 모니터링. | 앱을 설치할 때 사용하는 이미지 파일. 컨테이너를 생성하는 설계도. | 컨테이너에 저장되는 데이터가 휘발되지 않도록 유지. |
상태 | 실행 중인 상태의 컨테이너 목록을 표시. | 컨테이너를 실행하기 위한 템플릿. 실행되기 전 상태. | 데이터가 저장되는 영속적인 저장소. |
대표 명령어 | docker ps (실행 중인 컨테이너 보기) | docker images (저장된 이미지 목록 보기) | docker volume ls (저장소 목록 보기) |
항목 | VMDK (가상 머신 디스크) | 도커 이미지 |
---|---|---|
포함 내용 | 운영체제 + 프로그램 + 파일 시스템 | 앱 + 필요한 라이브러리 + 최소한의 OS |
용도 | 전체 OS를 가상화하여 실행 | 앱을 실행하기 위한 경량화된 환경 |
크기 | 크고 무겁다 (수 GB 이상) | 상대적으로 가볍다 (수백 MB 수준) |
실행 방식 | 운영체제부터 전체 시스템을 가상화하여 실행 | 앱만 격리된 환경에서 실행 |
예시 | VMware에서 사용하는 VMDK 파일 | 도커에서 사용하는 `ubuntu:latest` 이미지 등 |
이제 설치도 완료했고 실행도 됬으니 이제 이 아이를 가지고 여러가지 테스트 설치등을 하면서 작업을 하시면 됩니다.
참고로 도커로 할 수 있는일은 정말 많습니다만 대략 아래와 같습니다.
번호 | 도커로 할 수 있는 일 | 설명 |
---|---|---|
1 | 애플리케이션 격리 | 여러 개의 애플리케이션을 독립된 환경에서 실행할 수 있음 (예: Node.js 앱, Python 앱 등) |
2 | 개발 환경 자동화 | 개발 환경을 자동으로 구축 가능 (예: Python + Django + MySQL 한 번에 세팅) |
3 | 테스트 자동화 | 리눅스 환경에서 테스트 자동화 (CI/CD 환경 구축, 자동화 테스트용 컨테이너 실행) |
4 | 서버 구축 | 웹 서버(Apache, Nginx)나 DB 서버(MySQL, PostgreSQL) 등을 도커로 구축 가능 |
5 | 다양한 버전 관리 | 애플리케이션의 다양한 버전을 독립적으로 실행 가능 (예: n8n 2.0과 3.0 실행) |
6 | 보안 환경 테스트 | 격리된 환경에서 악성 프로그램이나 취약점 테스트 가능 |
7 | 환경 재현성 | 프로덕션 환경을 개발 환경에서 똑같이 설정 가능 |
8 | 단일 명령어로 앱 실행 | 한 줄 명령어로 앱을 즉시 실행 가능 (예: `docker run -it ubuntu bash`) |
9 | 애플리케이션 배포 | 애플리케이션을 컨테이너화하여 배포 가능 |
10 | 마이크로서비스 아키텍처 | 마이크로서비스 환경을 쉽게 구축 가능 (각 서비스가 독립적으로 실행) |
설치 완료 후 가장 기본적인 최초는 컨테이너를 생성 하는 것이겠습니다.
콘솔에서의 컨테이너 생성
단계 | 설명 | 명령어 예시 |
---|---|---|
1. 도커 이미지 다운로드 | 컨테이너를 만들기 위한 이미지를 도커 허브에서 다운로드 | docker pull python:3.9 |
2. 컨테이너 생성 | 다운로드한 이미지를 기반으로 새로운 컨테이너 생성 및 실행 | docker run -it –name python-container python:3.9 bash |
3. 컨테이너 내부로 접속 | 컨테이너 내부에 접속하여 리눅스 쉘을 사용할 수 있게 됨 | bash |
4. 작업 수행 | 컨테이너 내에서 필요한 작업 (예: 코드 실행, 프로그램 실행 등) | python myscript.py |
5. 컨테이너 종료 | 작업 종료 후, 컨테이너에서 나옴 | exit |
6. 컨테이너 상태 확인 | 실행 중인 컨테이너 목록을 확인 | docker ps -a |
7. 컨테이너 삭제 | 사용하지 않는 컨테이너 삭제 | docker rm python-container |
단계 | 설명 | 명령어 예시 (콘솔) | GUI에서 작업 |
---|---|---|---|
1. 도커 이미지 다운로드 | 컨테이너를 만들기 위한 이미지를 도커 허브에서 다운로드 | docker pull python:3.9 | 도커 데스크탑에서 Images 탭을 클릭하고, “Get more images”를 클릭하여 이미지 검색 후 다운로드 |
2. 컨테이너 생성 | 다운로드한 이미지를 기반으로 새로운 컨테이너 생성 및 실행 | docker run -it –name python-container python:3.9 bash | 도커 데스크탑에서 Containers 탭에서 “Create Container” 클릭 후 이미지 선택하고 실행 |
3. 컨테이너 내부로 접속 | 컨테이너 내부에 접속하여 리눅스 쉘을 사용할 수 있게 됨 | bash | 도커 데스크탑에서 Containers 탭에서 실행 중인 컨테이너를 클릭하여 “Open in terminal” 클릭하여 접속 |
4. 작업 수행 | 컨테이너 내에서 필요한 작업 (예: 코드 실행, 프로그램 실행 등) | python myscript.py | 도커 컨테이너 안에서 코드를 수정하고 실행하려면, Visual Studio Code와 Remote – Containers 확장 사용 |
5. 컨테이너 종료 | 작업 종료 후, 컨테이너에서 나옴 | exit | 도커 데스크탑에서 Containers 탭에서 실행 중인 컨테이너를 클릭하고 “Stop” 클릭하여 종료 |
6. 컨테이너 상태 확인 | 실행 중인 컨테이너 목록을 확인 | docker ps -a | 도커 데스크탑에서 Containers 탭에서 실행 중/정지된 컨테이너 상태를 확인할 수 있음 |
7. 컨테이너 삭제 | 사용하지 않는 컨테이너 삭제 | docker rm python-container | 도커 데스크탑에서 Containers 탭에서 “Delete” 버튼을 눌러 컨테이너 삭제 |
1.도커 컨테이너 파일 위치
과거에는 옮기지 못해서 윈도우 심볼릭링크등을 활용한 꼼수를 했는데 지금은 설정창에서 옮길 수 있습니다.
설정 -> Resources에 보시면 Disk Image Location이 있습니다.
기본 경로는 c:\Users\[사용자]\AppData\Docker\wsl로 설정 되어 있습니다.
변경은 간단하게 브라우저를 클릭해서 선택하면 끝입니다.

도커를 설치하면 최초로 생겨 있는 폴더가 있는데 폴더 변경후 apply & restart를 하시면 지정한 폴더로 DockerDesktopWSL가 만들어지며 이 마저도 옮겨집니다.
2.기본적인 도커 명령어. 콘솔에서 입력을 할 경우 기본적인 명령어 입니다.
명령어 | 설명 |
---|---|
docker pull [이미지명] | Docker Hub에서 이미지를 다운로드한다. |
docker images | 로컬에 저장된 이미지 목록을 조회한다. |
docker run [옵션] [이미지명] | 이미지를 기반으로 새로운 컨테이너를 생성하고 실행한다. |
docker ps | 현재 실행 중인 컨테이너 목록을 확인한다. |
docker ps -a | 실행 중이거나 종료된 모든 컨테이너 목록을 확인한다. |
docker stop [컨테이너ID] | 지정한 컨테이너를 정지시킨다. |
docker start [컨테이너ID] | 정지된 컨테이너를 다시 실행한다. |
docker restart [컨테이너ID] | 컨테이너를 재시작한다. |
docker rm [컨테이너ID] | 정지된 컨테이너를 삭제한다. |
docker rmi [이미지ID] | 로컬에 저장된 이미지를 삭제한다. |
docker volume ls | 도커 볼륨 목록을 조회한다. |
docker volume rm [볼륨명] | 지정한 볼륨을 삭제한다. |
docker exec -it [컨테이너ID] bash | 실행 중인 컨테이너 내부에 bash 쉘로 접속한다. |
docker logs [컨테이너ID] | 컨테이너 실행 로그를 출력한다. |
Docker는 실제 윈도우 os 시스템에 영향을 주지 않고 환경 그대로 유지하면서 반복할 수 있으니 편합니다
이렇게 해서 도커 설치 및 환경 설정을 마친 후, 이제 파이썬 개발 환경을 격리된 도커 컨테이너 안에서 실행할 준비가 되었습니다.
도커는 프로그램과 환경을 격리하여 실행할 수 있는 강력한 도구로, 특히 테스트와 개발 작업을 수행할 때 유용합니다.
도커를 통해 리눅스 기반의 개발 환경을 손쉽게 구축하고, 실험적인 작업이나 애플리케이션 배포에 있어서 시스템을 깔끔하게 유지할 수 있습니다.
또한, VS Code와의 통합을 통해 도커 컨테이너 내에서 직접 코드를 작성하고 디버깅할 수 있어 생산성을 높일 수 있습니다. 앞으로 도커를 활용해 다양한 개발 환경을 구축하고 관리하며, 복잡한 프로젝트를 더욱 효율적으로 진행할 수 있습니다.