Docker는 현대 개발 환경에서 필수가 된 컨테이너 기술입니다. 개발 환경 설정에서 배포까지, Docker를 제대로 알면 작업 효율성이 극적으로 향상됩니다. 이 가이드를 완료하면 로컬에서 간단한 웹 애플리케이션을 Docker로 컨테이너화하여 실행할 수 있게 됩니다.
시작하기 전 준비사항
Docker 설치와 실습을 위해 다음 항목들을 먼저 준비해주세요:
- Windows 10 Pro/Enterprise 이상, macOS, 또는 Linux 운영체제
- 최소 4GB 이상의 RAM (8GB 권장)
- 관리자 권한으로 프로그램 설치 가능
- 간단한 명령어 터미널 사용 경험
- 텍스트 에디터 (VS Code, Sublime Text 등)
Step 1: Docker 설치하기
Windows/Mac 설치
- Docker 공식 사이트(docker.com/get-started)에 접속합니다
- 운영체제에 맞는 Docker Desktop을 다운로드합니다
- 설치 파일을 실행하고 기본 설정으로 설치를 완료합니다
- 설치 완료 후 컴퓨터를 재시작합니다
- Docker Desktop 아이콘을 실행하여 서비스를 시작합니다
설치 확인하기
터미널(명령 프롬프트)을 열고 다음 명령어를 입력하여 설치를 확인합니다:
docker --version
docker run hello-world
버전 정보가 출력되고 “Hello from Docker!” 메시지가 나타나면 설치가 성공적으로 완료된 것입니다.
Step 2: Docker 기본 개념 이해하기
Docker를 효과적으로 사용하려면 핵심 개념들을 먼저 이해해야 합니다.
| 개념 | 설명 | 예시 |
|---|---|---|
| 이미지(Image) | 실행 가능한 패키지 | nginx, node:16 |
| 컨테이너(Container) | 이미지의 실행 인스턴스 | 실행 중인 웹서버 |
| Dockerfile | 이미지 생성 명령서 | 빌드 스크립트 |
가장 중요한 것은 이미지는 읽기 전용 템플릿이고, 컨테이너는 그 템플릿으로 만든 실행 환경이라는 점입니다. 하나의 이미지로 여러 개의 컨테이너를 만들 수 있습니다.
Step 3: 첫 번째 컨테이너 실행하기
실제로 웹서버 컨테이너를 실행해보며 Docker의 동작 원리를 체험해보겠습니다.
Nginx 웹서버 실행
- 터미널에서 다음 명령어를 실행합니다:
docker run -d -p 8080:80 --name my-nginx nginx
- 브라우저에서
localhost:8080에 접속합니다 - “Welcome to nginx!” 페이지가 나타나는지 확인합니다
- 실행 중인 컨테이너 목록을 확인합니다:
docker ps
명령어 옵션 설명
-d: 백그라운드에서 실행(detached mode)-p 8080:80: 호스트 8080 포트를 컨테이너 80 포트로 연결--name: 컨테이너에 이름 부여nginx: 사용할 이미지 이름
Step 4: 직접 Dockerfile 작성하기
이제 직접 웹 애플리케이션을 Docker 이미지로 만들어보겠습니다. 간단한 HTML 페이지를 nginx로 서비스하는 예제입니다.
프로젝트 폴더 생성
- 새 폴더
my-docker-app를 생성하고 이동합니다 index.html파일을 생성하고 다음 내용을 작성합니다:
My Docker App
안녕하세요! Docker로 배포한 웹사이트입니다.
현재 시간:
document.getElementById('time').textContent = new Date();
Dockerfile 작성
같은 폴더에 Dockerfile (확장자 없음)을 생성하고 다음 내용을 작성합니다:
FROM nginx:alpine
COPY index.html /usr/share/nginx/html/
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
각 줄의 의미는 다음과 같습니다:
FROM: 베이스 이미지 설정 (nginx의 경량버전)COPY: 로컬 파일을 컨테이너로 복사EXPOSE: 사용할 포트 번호 지정CMD: 컨테이너 시작 시 실행할 명령어
Step 5: 이미지 빌드 및 실행하기
이미지 빌드
프로젝트 폴더에서 터미널을 열고 다음 명령어로 이미지를 빌드합니다:
docker build -t my-web-app .
빌드가 완료되면 생성된 이미지를 확인합니다:
docker images
컨테이너 실행
빌드한 이미지로 컨테이너를 실행합니다:
docker run -d -p 3000:80 --name my-app my-web-app
브라우저에서 localhost:3000에 접속하여 결과를 확인합니다. 직접 작성한 HTML 페이지가 Docker 컨테이너에서 실행되는 것을 볼 수 있습니다!
마무리 및 다음 단계
축하합니다! Docker의 기본 개념부터 직접 애플리케이션을 컨테이너화하는 것까지 완주하셨습니다. 이제 어떤 환경에서든 동일하게 실행되는 애플리케이션을 만들 수 있는 기초를 갖추셨습니다.
• Docker Compose로 다중 컨테이너 관리
• 볼륨(Volume)을 활용한 데이터 영속성
• Docker Hub에 이미지 배포
• Kubernetes 입문
Docker를 활용한 개발 경험은 어떠셨나요? 실습 중 궁금한 점이나 오류가 발생했다면 댓글로 공유해주세요. 함께 문제를 해결하고 더 나은 개발 환경을 만들어가요!
댓글 남기기