Docker 완벽 가이드.2 – 설치를 해볼까요?

Docker 완벽 가이드.2 – 설치를 해볼까요?

이번 시간에는 Windows 11 환경에서 Docker를 설치하는 방법을 알아보겠습니다.

도커는 설치 환경에 따라 약간의 차이가 있기 때문에, 사용하는 운영체제에 맞춰 정확하게 설치하는 것이 중요합니다.

특히 윈도우에서는 WSL2(Windows Subsystem for Linux) 설정이 선행되어야 하므로, 이 부분도 함께 안내해드리겠습니다.

https://www.docker.com/

혹시 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: 도커 확장 프로그램을 관리할 수 있는 곳.

항목ContainersImagesVolumes
정의실행 중인 앱 환경. 프로그램이 실제로 동작하는 공간.앱 실행에 필요한 프로그램과 라이브러리 등을 포함한 템플릿.컨테이너 데이터 저장소. 데이터는 컨테이너가 삭제되어도 유지됨.
용도실행 중인 컨테이너를 관리하고 모니터링.앱을 설치할 때 사용하는 이미지 파일. 컨테이너를 생성하는 설계도.컨테이너에 저장되는 데이터가 휘발되지 않도록 유지.
상태실행 중인 상태의 컨테이너 목록을 표시.컨테이너를 실행하기 위한 템플릿. 실행되기 전 상태.데이터가 저장되는 영속적인 저장소.
대표 명령어docker ps (실행 중인 컨테이너 보기)docker images (저장된 이미지 목록 보기)docker volume ls (저장소 목록 보기)
부연 설명을 하자면 image는 vmware의 vmdk같은것입니다. vmdk는 가상 디스크 이미지입니다.
항목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에서 컨테이너 생성
단계설명명령어 예시 (콘솔)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 CodeRemote – 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와의 통합을 통해 도커 컨테이너 내에서 직접 코드를 작성하고 디버깅할 수 있어 생산성을 높일 수 있습니다. 앞으로 도커를 활용해 다양한 개발 환경을 구축하고 관리하며, 복잡한 프로젝트를 더욱 효율적으로 진행할 수 있습니다.

Leave a Comment