WSL에서 Docker 시작하기: 컨테이너 첫걸음
컨테이너와 이미지가 무엇인지, WSL2와 도커가 어떤 관계인지, 그리고 hello-world로 동작을 확인하기까지 입문자 기준으로 도커의 첫걸음을 정리했습니다.
왜 필요한가 · 개발 도구나 서버를 내 컴퓨터에 직접 깔아 어지럽히지 않고, 격리된 환경에서 깔끔하게 실행하고 싶을 때 도커가 좋은 출발점이기 때문입니다.
누구에게 · 도커라는 말은 들어봤지만 컨테이너·이미지 개념이 아직 막연하고, WSL 위에서 어떻게 시작하는지 모르는 입문자
읽고 나면 · 컨테이너와 이미지 개념을 이해하고, 설치 방식의 두 갈래를 구분하며, hello-world로 도커가 동작하는지 직접 확인할 수 있습니다.
핵심 요약
- 컨테이너는 프로그램과 실행에 필요한 환경을 하나로 묶어 격리해 돌리는 방식이고, 이미지는 그 컨테이너를 찍어내는 틀입니다.
- WSL2는 진짜 리눅스 커널을 띄우기 때문에, 윈도우에서 도커를 쓰는 자연스러운 바탕이 됩니다.
- 설치는 Docker Desktop의 WSL 통합과 리눅스 안에 도커 엔진을 직접 설치하는 두 갈래로 나뉩니다.
- docker run hello-world로 설치가 제대로 됐는지 가장 먼저 확인할 수 있습니다.
“이 도구를 쓰려면 도커가 필요합니다”라는 안내를 만나면, 입문자는 보통 두 가지에서 막힙니다. 도커가 대체 무엇을 하는 물건인지, 그리고 윈도우에서 어떻게 시작해야 하는지입니다. 이 글은 컨테이너와 이미지 개념을 먼저 풀고, WSL2 위에서 도커를 시작해 hello-world로 동작을 확인하는 데까지를 순서대로 따라갑니다. 정확한 설치 패키지나 버전은 시점에 따라 달라지므로, 세부 명령은 공식 문서 확인을 함께 권합니다.
컨테이너와 이미지, 쉽게 풀기
도커를 이해하는 핵심은 컨테이너와 이미지 두 단어입니다.
컨테이너는 프로그램 하나와 그 프로그램이 돌아가는 데 필요한 환경(필요한 라이브러리, 설정 등)을 하나로 묶어 격리된 상자 안에서 실행하는 방식입니다. 내 컴퓨터에 이것저것 직접 깔아 환경을 어지럽히지 않고, 상자 안에서만 돌리고 끝나면 상자를 치우는 식이라고 생각하면 쉽습니다.
이미지는 그 컨테이너를 찍어내는 틀입니다. 같은 이미지로 컨테이너를 여러 개 만들 수 있고, 이미지를 받아 두면 어느 컴퓨터에서든 같은 환경을 재현할 수 있습니다.
- 이미지: 실행 환경이 통째로 담긴 “설계도 겸 스냅샷”.
- 컨테이너: 그 이미지를 실제로 띄워 돌리고 있는 “실행 중인 인스턴스”.
- “내 컴퓨터에서는 됐는데 다른 데서는 안 된다”는 문제를 줄이는 것이 도커의 큰 장점입니다.
✍️ 운영자 한마디
컨테이너라는 말이 처음엔 추상적으로만 들렸는데, hello-world 이미지 하나 돌려보고 나니 ‘아, 격리된 작은 환경이 뜨는 거구나’ 하고 감이 왔습니다. 권한 문제로 명령이 처음에 막혀서 잠깐 헤맸습니다.
WSL2와 도커의 관계
도커는 본래 리눅스 환경에서 동작하는 기술입니다. 윈도우에서 도커를 쓸 수 있는 이유는, WSL2가 윈도우 안에서 진짜 리눅스 커널을 띄워 주기 때문입니다. 즉 윈도우용 도커는 그 WSL2 리눅스 환경을 바탕 삼아 동작하는 구조입니다.
그래서 도커를 시작하기 전에 WSL2가 먼저 준비되어 있어야 합니다. 아직 WSL이 설치되어 있지 않다면, 도커보다 WSL 설치를 먼저 마쳐 두는 편이 순서상 자연스럽습니다.
설치 방식 두 갈래
WSL에서 도커를 쓰는 길은 크게 두 갈래로 나뉩니다. 개념만 먼저 잡아 두고, 실제 설치 절차는 공식 문서를 따르는 것이 안전합니다.
1. Docker Desktop의 WSL 통합
윈도우에 Docker Desktop을 설치하고, 그 설정에서 WSL 배포판과의 통합을 켜는 방식입니다. 윈도우 쪽 앱으로 도커를 관리하면서, WSL 안의 터미널에서 docker 명령을 그대로 쓸 수 있습니다. 그래픽 화면으로 상태를 보거나 관리하는 데 익숙한 입문자에게 진입이 편합니다.
2. 리눅스 안에 도커 엔진 직접 설치
Docker Desktop 없이, WSL 우분투 안에 도커 엔진을 직접 설치해 명령으로만 다루는 방식입니다. 리눅스 환경에 더 가깝게 다루고 싶거나, 그래픽 앱 없이 가볍게 쓰고 싶을 때 선택합니다. 설치 패키지 이름과 절차는 배포판·시점에 따라 달라지므로 공식 문서의 안내를 그대로 따르는 것을 권합니다.
어느 쪽이든 결국 WSL 안에서 docker 명령을 쓰게 된다는 점은 같습니다. 처음이라면 관리가 직관적인 Docker Desktop 통합으로 시작해도 무방합니다.
기본 명령 익히기
설치가 끝났다면, 자주 쓰는 기본 명령부터 손에 익혀 두면 좋습니다.
동작 확인: hello-world
가장 먼저 할 일은 도커가 제대로 도는지 확인하는 것입니다.
docker run hello-world
이 명령은 hello-world라는 작은 이미지를 내려받아 컨테이너로 실행합니다. 안내 메시지가 출력되면 설치와 기본 동작이 정상이라는 뜻입니다. 여기서 run은 “이미지를 받아(필요하면) 컨테이너로 실행”하는 명령입니다.
상태와 목록 보기
docker ps
docker images
docker ps는 지금 실행 중인 컨테이너 목록을, docker images는 내 컴퓨터에 받아 둔 이미지 목록을 보여 줍니다. hello-world는 잠깐 실행되고 끝나는 종류라, 실행이 끝난 뒤에는 docker ps 목록에 보이지 않을 수 있습니다.
컨테이너 멈추기
계속 떠 있는 컨테이너를 멈추려면 아래처럼 합니다.
docker stop <컨테이너이름또는ID>
멈출 대상의 이름이나 ID는 docker ps 결과에서 확인할 수 있습니다.
권한(docker 그룹) 주의
리눅스 안에 도커 엔진을 직접 설치한 경우, 처음에는 docker 명령을 쓸 때 권한 오류가 나거나 매번 sudo를 붙여야 할 수 있습니다. 이는 도커가 시스템 권한과 맞닿아 동작하기 때문입니다. 보통은 현재 사용자를 docker 그룹에 넣어 sudo 없이 쓰도록 설정하는데, 그룹 변경은 다시 로그인하거나 환경을 새로 켜야 적용되는 경우가 많습니다.
다만 권한 설정은 보안과도 연결되는 부분이라, 정확한 절차와 주의점은 공식 문서를 따르는 것을 권합니다. 막연히 모든 권한을 여는 식으로 접근하지 말고, 안내된 방법을 그대로 따라가는 편이 안전합니다.
초보자가 자주 막히는 부분
- WSL2 준비 없이 도커부터 설치 — 도커는 WSL2 리눅스 환경 위에서 동작하므로, WSL이 먼저 준비돼 있어야 합니다.
- 두 설치 방식을 동시에 섞음 — Docker Desktop과 엔진 직접 설치를 한 환경에 뒤섞으면 어느 쪽이 동작하는지 헷갈릴 수 있습니다. 하나를 정해 시작하세요.
- 권한 오류에 무작정 sudo만 반복 — 매번
sudo를 붙이기보다docker그룹 설정을 공식 문서대로 한 번 정리하는 편이 깔끔합니다. - 그룹 설정 후 바로 적용되길 기대 — 그룹 변경은 다시 로그인하거나 환경을 새로 켜야 반영되는 경우가 많습니다.
- 이미지와 컨테이너를 같은 것으로 혼동 — 이미지는 틀, 컨테이너는 그 틀로 만든 실행 중인 인스턴스로 구분하면 명령이 이해됩니다.
도커 첫걸음 체크리스트
- 컨테이너와 이미지의 차이를 한 줄로 설명할 수 있다
- 도커가 WSL2 리눅스 환경 위에서 동작한다는 점을 이해했다
- 설치 방식이 Docker Desktop 통합과 엔진 직접 설치 두 갈래임을 안다
docker run hello-world로 동작을 확인했다docker ps/docker images로 상태와 목록을 볼 수 있다- 권한 오류 시
docker그룹 설정이 필요할 수 있음을 알고, 공식 문서를 확인한다
정리
도커의 핵심은 “환경을 통째로 묶어 격리해 실행한다”는 발상이고, 그 단위가 컨테이너이며 틀이 이미지입니다. 윈도우에서는 WSL2가 리눅스 커널을 띄워 주기 때문에 그 위에서 도커를 자연스럽게 쓸 수 있습니다. 설치는 Docker Desktop의 WSL 통합과 리눅스 엔진 직접 설치 두 갈래가 있고, 어느 쪽이든 결국 docker 명령으로 다룬다는 점은 같습니다. 먼저 docker run hello-world로 동작을 확인하고, ps·images·stop 같은 기본 명령부터 손에 익혀 보세요. 정확한 설치 패키지와 권한 설정은 시점에 따라 달라질 수 있으니 공식 문서를 함께 확인하는 습관을 들이면 좋습니다.
자주 묻는 질문
- 도커를 쓰려면 가상머신을 따로 깔아야 하나요?
- WSL2 자체가 가벼운 가상화로 리눅스 커널을 띄우는 구조라, 별도의 무거운 가상머신을 따로 준비할 필요는 없습니다. 도커는 그 리눅스 환경 위에서 동작합니다.
- Docker Desktop과 리눅스 안 도커 엔진 중 무엇을 골라야 하나요?
- 정답이 하나로 정해진 것은 아닙니다. 윈도우와의 연동·그래픽 관리가 편한 쪽을 원하면 Docker Desktop, 리눅스 안에서 명령으로만 다루는 데 익숙하면 엔진 직접 설치가 맞습니다. 라이선스·설치 조건은 시점에 따라 달라질 수 있으니 공식 문서를 확인하세요.
이 글은 입문자 기준으로 이해하기 쉽게 정리했으며, 내용은 운영 과정에서 순차적으로 보완될 수 있습니다. 환경에 따라 화면이나 명령이 다르게 보일 수 있으니, 막히는 부분이 있으면 isense2021@gmail.com 로 알려주세요.