윈도우 환경에서 리눅스 서버를 사용하고 싶은 경우, Docker를 활용하면 간단하게 우분투 서버를 실행할 수 있다. 이 글에서는 Docker 설치부터 우분투 컨테이너를 실행하고 사용하는 방법까지 간단하게 설명한다.
1. Docker란?
Docker는 컨테이너 기반의 가상화 플랫폼으로, 리눅스 기반의 환경을 격리된 공간에서 손쉽게 실행할 수 있게 해주는 도구다. Docker를 사용하면 가상 머신보다 더 가볍고 빠르게 리눅스 환경을 만들 수 있다.
2. 사전 준비
- Windows 10 Pro, Enterprise, 또는 Education (Hyper-V 기능 필요)
- WSL 2(Windows Subsystem for Linux) 활성화
3. Docker Desktop 설치 및 설정
- Docker 공식 홈페이지에서 Docker Desktop for Windows를 다운로드한다.
- 설치 프로그램을 실행하고, WSL 2 기반으로 설치를 진행한다.
- 설치 후 Docker Desktop을 실행하고, 우측 상단의 톱니바퀴 아이콘(설정) > General 탭에서 "Use the WSL 2 based engine" 옵션을 확인한다.
- Docker가 정상적으로 설치되었는지 확인하려면, PowerShell 또는 CMD를 열고 다음 명령어를 입력한다:
docker --version
4. 우분투 이미지 다운로드
Docker Hub에서 제공하는 공식 우분투 이미지를 사용할 수 있다. 터미널(CMD 또는 PowerShell)에서 다음 명령어를 실행한다:
docker pull ubuntu
해당 명령어를 실행하면 최신 우분투 이미지가 다운로드된다. 특정 버전(예: 20.04)을 원한다면 다음과 같이 입력한다:
docker pull ubuntu:20.04
5. 우분투 컨테이너 실행
우분투 컨테이너를 실행하려면 다음 명령어를 입력한다:
docker run -it -p 80:3000 --name my-ubuntu ubuntu
설명:
- -it: 터미널 입력을 위한 옵션
- -p 80:3000: 호스트의 80포트와 컨테이너 내부 3000포트를 연결
- --name my-ubuntu: 컨테이너 이름 지정
- ubuntu: 사용할 이미지 이름
위 명령어를 실행하면 우분투 셸 환경으로 진입하게 된다.
우분투 설치 후 기본적인 것을 깔아야 하는데, 이는 Ubuntu 개발 환경 초기 설정하기 에서 확인하거나 해당 글에서 Dockerfile을 다운로드 받아 이미지를 빌드할 수 있다.
docker build -t my-image .
6. 실행 중인 컨테이너 확인
현재 실행 중인 컨테이너 목록을 보려면 다음 명령어를 사용한다:
docker ps
중지된 컨테이너도 포함하여 모두 보려면:
docker ps -a
7. 컨테이너 재접속
우분투 컨테이너에서 빠져나왔거나 Docker를 재시작한 경우, 기존 컨테이너에 재접속하려면 다음 명령어를 사용한다:
docker start -ai my-ubuntu
또는 실행 후 접속하려면:
docker start my-ubuntu
docker attach my-ubuntu
8. 자주 사용하는 명령어 요약
명령어설명
docker pull ubuntu | 우분투 이미지 다운로드 |
---|---|
docker run -it --name my-ubuntu ubuntu | 새 우분투 컨테이너 실행 |
docker ps -a | 모든 컨테이너 목록 보기 |
docker start my-ubuntu | 기존 컨테이너 실행 |
docker attach my-ubuntu | 실행 중인 컨테이너에 접속 |
9. 마무리
Docker를 이용하면 무거운 가상 머신 없이도 우분투 환경을 윈도우에서 손쉽게 구축할 수 있다. 개발 환경 구성, 서버 테스트, 리눅스 명령어 학습 등 다양한 용도로 활용할 수 있으니 꼭 한 번 시도해보길 추천한다.
'WIL > 웹 개발' 카테고리의 다른 글
Next.js + TypeScript + App Router 환경에서 tsconfig 타입 꼬임 (0) | 2025.03.27 |
---|---|
Windows에서 Docker로 Ubuntu 서버 만들기 2: Ubuntu 개발 환경 초기 설정 (0) | 2025.03.24 |
프로토타입과 클래스 (0) | 2024.12.11 |
WAI-ARIA: Role과 Aria-Label이란? (1) | 2024.11.19 |
Spring 애플리케이션 배포 시 GitHub Actions 환경 변수 설정법 (1) | 2024.11.04 |