반응형
안녕하세요 펭귄 교수입니다.
그렇게 시작하게 된 도커 강의, 1편
도커란 무엇인가.
포스팅 진행해보도록 하겠습니다.
도커란 무엇인가?
도커(Docker)는 애플리케이션을 컨테이너라는 가벼운 환경에서 실행할 수 있게 도와주는 플랫폼입니다. 도커를 사용하면 애플리케이션을 다양한 환경에서 일관되게 배포하고 관리할 수 있습니다. 먼저, 도커의 기본 개념과 도커가 왜 중요한지 살펴보겠습니다.
도커의 핵심 개념
도커는 컨테이너라는 기술을 사용해 애플리케이션과 그 환경을 독립적으로 실행합니다. 컨테이너는 가상머신(VM)처럼 보일 수 있지만, 훨씬 가볍고 빠릅니다. 아래는 도커의 주요 특징들입니다.
1. 경량화된 환경
- 도커 컨테이너는 가상머신에 비해 가볍습니다. VM은 각기 다른 운영체제(OS)를 포함해야 하지만, 도커 컨테이너는 호스트 OS의 커널을 공유하므로 리소스 소모가 적습니다.
- 예를 들어, VM에서는 하나의 앱을 실행하기 위해 약 1GB 이상의 리소스가 필요하지만, 도커 컨테이너는 그보다 훨씬 적은 리소스로 구동할 수 있습니다.
2. 빠른 시작 시간
- VM은 부팅에 몇 분이 걸릴 수 있지만, 도커 컨테이너는 몇 초 안에 실행됩니다.
docker run hello-world
이 명령어는 도커가 제대로 설치되었는지 확인하고, 간단한 'Hello World' 메시지를 출력하는 컨테이너를 실행합니다.
3. 이식성
- 컨테이너에 포함된 애플리케이션은 어느 환경에서도 동일하게 동작합니다. 이는 개발, 테스트, 프로덕션 환경에서의 차이를 최소화합니다.
- 예를 들어, 개발자가 로컬 환경에서 구동한 앱을 그대로 클라우드 서버에 배포할 수 있습니다.
4. 격리성
- 컨테이너는 서로 격리된 환경에서 동작하기 때문에, 하나의 컨테이너에서 발생한 문제가 다른 컨테이너에 영향을 미치지 않습니다.
5. 확장성
- 도커는 수십 개의 컨테이너를 빠르게 배포하고 관리할 수 있는 도구를 제공합니다. 이로 인해 대규모 애플리케이션의 배포와 관리가 용이해집니다.
도커와 가상머신(VM)의 차이
도커와 VM은 모두 애플리케이션을 격리된 환경에서 실행할 수 있게 해주지만, 그 구조에는 큰 차이가 있습니다.
특징도커 컨테이너가상머신 (VM)
도커 | 가상머신 | |
운영 체제 | 호스트 OS의 커널 공유 | 게스트 OS 포함 (각각의 OS 필요) |
성능 | 가볍고 빠름 | 무겁고 느림 |
리소스 사용량 | 적음 | 많음 |
시작 시간 | 몇 초 | 몇 분 |
격리 수준 | 프로세스 격리 | 완전한 OS 격리 |
# 도커 명령어로 컨테이너 실행하기
docker run -d -p 8080:80 nginx
위 명령어는 nginx 웹 서버를 도커 컨테이너로 실행하고, 로컬 포트 8080을 컨테이너 내부의 포트 80에 연결합니다.
-d 옵션은 컨테이너를 백그라운드에서 실행합니다.
도커의 장점
- 개발과 운영 환경의 일관성 유지
도커는 애플리케이션을 실행할 때 동일한 환경을 제공하므로, "내 컴퓨터에서는 잘 돌아가는데 서버에서는 안 돼요"라는 문제가 사라집니다. - 애플리케이션 배포 간소화
도커 이미지를 사용하면 복잡한 설치 과정 없이, 한 번 빌드한 이미지를 여러 곳에서 실행할 수 있습니다. - 버전 관리 및 복구 용이
도커 이미지는 애플리케이션의 특정 버전을 기록하고, 이전 버전으로 손쉽게 롤백할 수 있습니다.
예시 코드
1. 기본 컨테이너 실행
# 'Hello World' 컨테이너 실행
docker run hello-world
2. nginx 웹 서버 실행
# nginx 컨테이너를 백그라운드에서 실행하고 로컬 포트 8080으로 연결
docker run -d -p 8080:80 nginx
과제
이제 도커를 설치하고 컨테이너를 직접 실행해 봅시다!
- 본인의 운영체제에 맞게 도커를 설치하세요.
- docker run hello-world 명령어를 실행하여 도커가 정상적으로 작동하는지 확인하세요.
- 웹 서버로 유명한 nginx를 컨테이너로 실행해보세요.
- docker run -d -p 8080:80 nginx 명령어를 사용하세요.
- 브라우저에서 http://localhost:8080으로 접속하여 nginx가 정상적으로 동작하는지 확인하세요.
- Virtual Box 등 가상환경에서 로컬 PC에서 접속하기 위해서는 포트포워딩이 필요합니다.
다음 장에서는 각 운영체제마다 도커를 설치하는 법에 대해 알아보겠습니다.
최대한 많은 실습 코드를 넣을 예정이니 반복해서 따라오면 어렵지 않을 겁니다.
감사합니다.
728x90
반응형
'Docker > Docker 강의' 카테고리의 다른 글
[Docker 강의 5편] 도커 이미지 최적화 및 관리 (0) | 2024.09.17 |
---|---|
[Docker 강의 4편] 도커 네트워크와 볼륨 관리 (0) | 2024.09.16 |
[Docker 강의 3편] 도커 기본 명령어 사용법 (0) | 2024.09.15 |
[Docker 강의 2편] 도커 설치 및 기본 설정 (0) | 2024.09.13 |
[Docker 강의 0편] 강의 커리큘럼 (0) | 2024.09.12 |