[Docker 강의 1편] 도커란 무엇인가

2024. 9. 12. 08:45·Docker/Docker 강의
반응형

 

안녕하세요 펭귄 교수입니다.

 

그렇게 시작하게 된 도커 강의, 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. 개발과 운영 환경의 일관성 유지
    도커는 애플리케이션을 실행할 때 동일한 환경을 제공하므로, "내 컴퓨터에서는 잘 돌아가는데 서버에서는 안 돼요"라는 문제가 사라집니다.
  2. 애플리케이션 배포 간소화
    도커 이미지를 사용하면 복잡한 설치 과정 없이, 한 번 빌드한 이미지를 여러 곳에서 실행할 수 있습니다.
  3. 버전 관리 및 복구 용이
    도커 이미지는 애플리케이션의 특정 버전을 기록하고, 이전 버전으로 손쉽게 롤백할 수 있습니다.

예시 코드

1. 기본 컨테이너 실행

# 'Hello World' 컨테이너 실행
docker run hello-world
 

2. nginx 웹 서버 실행

# nginx 컨테이너를 백그라운드에서 실행하고 로컬 포트 8080으로 연결
docker run -d -p 8080:80 nginx

 


과제

이제 도커를 설치하고 컨테이너를 직접 실행해 봅시다!

  1. 본인의 운영체제에 맞게 도커를 설치하세요.
  2. docker run hello-world 명령어를 실행하여 도커가 정상적으로 작동하는지 확인하세요.
  3. 웹 서버로 유명한 nginx를 컨테이너로 실행해보세요.
    • docker run -d -p 8080:80 nginx 명령어를 사용하세요.
    • 브라우저에서 http://localhost:8080으로 접속하여 nginx가 정상적으로 동작하는지 확인하세요.
      • Virtual Box 등 가상환경에서 로컬 PC에서 접속하기 위해서는 포트포워딩이 필요합니다.

 


 

다음 장에서는 각 운영체제마다 도커를 설치하는 법에 대해 알아보겠습니다.

최대한 많은 실습 코드를 넣을 예정이니 반복해서 따라오면 어렵지 않을 겁니다.

 

감사합니다.

반응형

'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
'Docker/Docker 강의' 카테고리의 다른 글
  • [Docker 강의 4편] 도커 네트워크와 볼륨 관리
  • [Docker 강의 3편] 도커 기본 명령어 사용법
  • [Docker 강의 2편] 도커 설치 및 기본 설정
  • [Docker 강의 0편] 강의 커리큘럼
Dev.Poinguinie
Dev.Poinguinie
게임, 코딩 블로그 입니다. 여러 일상적인 글도 올려요! 많이 봐주세요! 감사합니다.
  • Dev.Poinguinie
    펭귄교수
    Dev.Poinguinie
    • 분류 전체보기
      • 새티스팩토리
        • 정보
        • 모드
        • 리뷰
      • 펠월드
        • 정보
        • 패치노트
      • 게임
        • 스팀 세일
        • 테라리아
        • 디펜서바이버
      • App
        • Kotlin
        • Flutter
      • Front End
        • HTML
        • JavaScript
        • React
      • Back End
        • Node.js
      • Docker
        • Docker 강의
        • Docker Project
      • 프로그래밍
        • AI
        • Chrome Extension
        • Markdown
        • Python
        • C++
        • Linux
        • Error
        • Tool
      • Computer Science
        • Algorithm
        • Network
      • 게임 프로그래밍
        • 유니티
      • 제작
        • 웹사이트
        • 기타 프로그램
      • 일상
        • 자작시
        • 노래 추천 및 정보
        • 블로그 운영
        • 내일의 모든 것
        • 오블완 챌린지
      • 리뷰
        • 식당 리뷰
        • IT 리뷰
  • 최근 글

  • 링크

    • 새티스 팩토리 모드
    • 깃허브 블로그
    • 깃허브 프로필
  • 공지사항

    • 티스토리 스킨 변경
    • 파이썬 코딩 강의 공지사항
  • hELLO· Designed By정상우.v4.10.3
Dev.Poinguinie
[Docker 강의 1편] 도커란 무엇인가
상단으로

티스토리툴바