![]()
Docker란 무엇인가요?

Docker는 소프트웨어를 컨테이너라는 독립적인 실행 환경에서 실행하게 해주는 플랫폼입니다. 컨테이너는 가상 머신과 유사하지만, 더 가볍고 빠르며, 운영 체제의 커널을 공유합니다.
Docker는 애플리케이션과 그에 필요한 모든 라이브러리, 종속성을 패키징하여 일관된 환경에서 실행할 수 있도록 합니다. 아래 표는 Docker와 전통적인 가상 머신의 차이를 나타냅니다.| 특징 | Docker (컨테이너) | 전통적인 가상 머신 |
|---|---|---|
| 경량화 | 매우 경량 | 비교적 무겁 |
| 시작 시간 | 몇 초 이내 | 몇 분 소요 |
| 자원 사용량 | 적음 | 많음 |
| 운영 체제 | 호스트 OS와 커널 공유 | 각 VM마다 OS 포함 |
| 이식성 | 높음 | 낮음 |
Docker를 사용하면 개발자는 애플리케이션을 테스트하고 배포하는 과정에서 환경에 의존하지 않고 일관된 결과를 얻을 수 있습니다. 이는 개발 및 운영 환경에서의 불일치를 줄여주고, 팀원 간의 협업을 원활하게 합니다.
WSL(Windows Subsystem for Linux) 소개

WSL은 Windows에서 리눅스 환경을 실행할 수 있게 해주는 기능입니다. WSL을 통해 사용자는 리눅스 배포판을 설치하고, 리눅스의 다양한 명령어 및 도구를 윈도우에서 사용할 수 있습니다.
WSL 2는 WSL의 최신 버전으로, 성능과 호환성 향상이 이루어졌습니다. 아래 표는 WSL 1과 WSL 2의 주요 차이점을 나타냅니다.| 특징 | WSL 1 | WSL 2 |
|---|---|---|
| 커널 사용 | 호스트 OS의 파일 시스템 사용 | 리눅스 전용 커널 사용 |
| 파일 시스템 성능 | 상대적으로 느림 | 매우 빠름 |
| 시스템 호출 호환성 | 제한적 | 완전한 리눅스 커널 지원 |
| Docker 지원 | 제한적 | 완전 지원 |
WSL 2는 리눅스 커널을 포함하고 있어 Docker와 같은 컨테이너 기반 애플리케이션을 원활하게 사용할 수 있습니다. 따라서 WSL 2를 사용하여 Docker를 설치하면 리눅스 환경에서의 개발 작업이 더욱 용이해집니다.
Docker Desktop 설치 방법

Docker Desktop은 윈도우에서 Docker를 사용하는 데 필요한 도구입니다. Docker Desktop을 설치하면 리눅스 기반의 컨테이너를 실행할 수 있는 기능과 GUI 기반의 관리 도구를 제공합니다.
아래는 Docker Desktop을 설치하는 단계입니다.-
Docker 공식 웹사이트 방문: Docker 공식 웹사이트에 접속하여 Docker Desktop을 다운로드합니다.
-
설치 실행: 다운로드한 설치 파일을 실행합니다. 설치 과정에서 WSL 통합 옵션을 선택할 수 있습니다. WSL 2를 사용하고 있다면 이 옵션을 활성화해 주세요.
-
시스템 요구 사항 확인: Docker Desktop을 설치하기 위해서는 Windows 10 64-bit Pro, Enterprise 또는 Education 버전이 필요합니다. Windows Home 버전에서도 WSL 2를 통해 Docker를 사용할 수 있습니다.
-
설치 완료 후 재부팅: 설치가 완료되면 시스템을 재부팅해야 할 수 있습니다. 재부팅 후 Docker Desktop을 실행합니다.
-
WSL 통합 설정: Docker Desktop의 설정 메뉴에서 “Resources” > “WSL Integration”을 선택하여 WSL 배포판과의 통합을 활성화합니다.
아래 표는 Docker Desktop의 주요 기능을 정리한 것입니다.
| 기능 | 설명 |
|---|---|
| GUI 관리 도구 | 컨테이너 및 이미지 관리를 위한 그래픽 인터페이스 제공 |
| Docker Compose 지원 | 여러 컨테이너를 쉽게 관리할 수 있도록 도와줌 |
| WSL 통합 | WSL 2와의 통합을 통해 리눅스 환경에서 컨테이너 실행 가능 |
| 자동 업데이트 | Docker Desktop의 자동 업데이트 기능 제공 |
이제 Docker Desktop을 통해 리눅스 개발 환경을 구축할 준비가 완료되었습니다.
WSL에서 Docker 사용하기
Docker Desktop을 설치하고 WSL과 통합한 후, 이제 WSL에서 Docker를 사용할 수 있습니다. WSL 터미널을 열고 Docker 명령어를 입력하여 Docker가 정상적으로 작동하는지 확인할 수 있습니다.
다음 단계로는 Docker를 통해 리눅스 컨테이너를 생성하고 실행하는 방법을 알아보겠습니다.-
WSL 터미널 열기: 윈도우에서 WSL 터미널을 열어주세요. Ubuntu와 같은 설치된 리눅스 배포판을 선택합니다.
-
Docker 설치 확인: WSL 터미널에서
docker --version명령어를 입력하여 Docker가 설치되어 있는지 확인합니다. Docker 버전 정보가 출력되면 정상적으로 설치된 것입니다. -
Hello World 이미지 실행: Docker가 정상 작동하는지 테스트하기 위해
docker run hello-world명령어를 입력합니다. 이 명령어는 Docker Hub에서 Hello World 이미지를 다운로드하고 실행하여 Docker가 제대로 설치되었는지 확인하는 기능을 수행합니다.
아래 표는 Docker 명령어와 그 설명을 정리한 것입니다.
| 명령어 | 설명 |
|---|---|
docker --version |
Docker의 현재 버전 확인 |
docker run hello-world |
Hello World 이미지를 다운로드하고 실행 |
docker images |
로컬에 저장된 Docker 이미지 목록 조회 |
docker ps |
현재 실행 중인 Docker 컨테이너 목록 조회 |
이제 Docker를 통해 다양한 리눅스 환경을 구축하고 사용할 수 있습니다. 예를 들어, 특정 프로젝트에 필요한 환경을 Docker를 통해 쉽게 설정할 수 있습니다.
Docker를 활용한 개발 환경 구축 예시
Docker를 통해 리눅스 개발 환경을 구축하면, 프로젝트별로 필요한 종속성과 환경을 쉽게 관리할 수 있습니다. 예를 들어, MariaDB와 MySQL을 동시에 사용하는 경우, Docker를 활용하여 두 데이터베이스를 각각의 컨테이너에서 실행할 수 있습니다.
-
Docker 이미지 검색: Docker Desktop의 GUI를 통해 필요한 이미지를 검색합니다. 예를 들어, MySQL과 MariaDB 이미지를 검색할 수 있습니다.
-
이미지 다운로드 및 실행: 선택한 이미지를 다운로드받고 실행합니다. Docker Desktop에서 “Run” 버튼을 클릭하면 해당 이미지의 컨테이너가 실행됩니다.
-
환경 설정: 컨테이너 실행 시 환경 변수를 설정하여 데이터베이스의 사용자 이름, 비밀번호 등을 지정할 수 있습니다. 예를 들어, MySQL의 경우
MYSQL_ROOT_PASSWORD환경 변수를 설정해야 할 수 있습니다.
아래 표는 MySQL과 MariaDB의 Docker 이미지 설정 예시를 나타냅니다.
| 데이터베이스 | 이미지 이름 | 환경 변수 설정 |
|---|---|---|
| MySQL | mysql:latest |
MYSQL_ROOT_PASSWORD, MYSQL_DATABASE |
| MariaDB | mariadb:latest |
MARIADB_ROOT_PASSWORD, MARIADB_DATABASE |
이러한 방법으로 Docker를 활용하여 다양한 개발 환경을 구축할 수 있으며, 필요에 따라 이미지를 삭제하고 새로운 이미지를 다운로드하여 작업할 수 있습니다.
마무리
이번 글에서는 윈도우에서 Docker를 설치하고 WSL과 통합하여 리눅스 개발 환경을 구축하는 방법에 대해 알아보았습니다. Docker를 활용하면 소프트웨어 개발 시 환경 설정의 번거로움을 줄이고, 일관된 개발 환경을 유지할 수 있습니다.
또한, 필요한 경우 간편하게 컨테이너를 생성하고 관리할 수 있어 개발 효율성을 크게 향상시킬 수 있습니다. Docker와 WSL을 함께 사용함으로써 다양한 리눅스 배포판을 쉽게 테스트하고 활용할 수 있으며, 이는 개발자의 생산성에 많은 기여를 할 것입니다.앞으로도 Docker를 활용하여 더욱 효율적인 개발 환경을 구축해 보시기 바랍니다.