[DevOps] 컨테이너(Container)와 도커(Docker)

2025. 6. 4. 00:44·DevOps
728x90

 

 

 

1. Container

1.1. 컨테이너란?

❓ 실행 환경에 독립적으로 애플리케이션을 실행하는 기술
  • 운영체계 수준의 격리 기술
  • 애플리케이션 구동에 필요한 라이브러리, 종속 항목을 패키징
  • 장점
    • 가벼움 : VM과 달리 Guest OS가 없어 크기가 작음
    • 탄력성 : 리눅스, 윈도우, 가상머신 등 어느 환경에서나 구동 가능
    • 유지 관리 효율
    • : 운영 체제 커널이 하나 → OS 수준 업데이트 / 패치를 한 번만 수행하여 모든 컨테이너에 적용 가능

 

1.2. 컨테이너와 가상머신(VM)의 차이

  • 컨테이너 (Container)
    • 하나의 Host OS
      • 그 위에서 각각의 독립적인 프로그램처럼 관리 및 실행
    • 확장성이 좋고 빠름
      • 불필요한 OS 만들기 및 인프라 독립적으로 나눌 필요 없음
  • 가상머신 (Virtual Machine)
    • 각 VM에 독립적인 Guest OS
      • 독립적인 플랫폼 증가 시 OS 만드는 불필요한 작업 필요
    • HyperVisor : 컴퓨터의 인프라 리소스를 VM별로 배분하는 역할

 

 

2. Docker

  • 컨테이너 기반의 오픈소스 가상화 플랫폼 중 하나
  • 인프라에서 애플리케이션을 분리하여 컨테이너로 추상화, 소프트웨어를 빠르게 제공 가능
    • BE 프로그램, DB 서버, 메시지 큐 등 어떤 프로그램도 컨테이너로 추상화 가능
    • 조립 PC, AWS, Azure 등 어디서든 실행 가능
  • 컨테이너의 라이프사이클 관리
  • 애플리케이션을 오케스트레이션(Work flow의 자동화)된 서비스로 배포 가능

 

2.1. 도커의 아키텍쳐

  • 클라이언트-서버 구조
    • 도커 클라이언트-도커 데몬이 REST API를 사용하여 통신
  • Docker Demon : Docker API 요청 수신, 이미지, 컨테이너, 네트워크 등의 도커 객체 및 도커 서비스 관리
  • Docker Client : Docker 사용자가 Docker와 상호작용하기 위한 방법
    • 기본적인 도커 명령어를 통해 Docker Demon과 통신
  • Docker Registry : Docker 이미지를 저장
    • 공용 레지스트리 (Docker hub, 일반적 사용) / 개인 Private 레지스트리
    docker pull, docker run : 사용하면 필수 이미지 가져온다
    docker push : 레지스트리에 저장
    
  • Docker 객체
    • Docker Images : 컨테이너 실행에 필요한 파일과 설정값 등을 포함
    • Container : 도커 이미지의 실행 가능한 인스턴스
    docker run : 이를 통해 실행 컨테이너의 실행이 가능하다
    

 

 

 

 

 

 

 


📌 References

https://velog.io/@geunwoobaek/컨테이너-및-도커-개념정리

 

컨테이너 및 도커 개념정리

소프트웨어는 OS와 라이브러리에 의존성을 뛴다. 그러므로 하나의 컴퓨터에서 성격이 다른(OS,라이브러리 버전이 다른) 소프트웨어를 한번에 실행할 때 어려움을 가질 수 있고 관련된 구성을 관

velog.io

https://nearhome.tistory.com/83

 

[쿠버네티스] 컨테이너가 뭐에요? (컨테이너의 기본 개념, 컨테이너 란?)

들어가며: 컨테이너가 뭐에요? 왜 컨테이너라고 부르죠? 컨테이너의 장점 컨테이너 아키텍처 도커 컨테이너 왜 (도커) 컨테이너를 써야하나요? 들어가며 : 컨테이너(container)가 뭐에요? 대충말하

nearhome.tistory.com

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
저작자표시 비영리 (새창열림)

'DevOps' 카테고리의 다른 글

[DevOps] 오픈시프트(OpenShift)와 쿠버네티스(Kubernetes)  (0) 2025.06.04
[DevOps] Jenkins란?  (1) 2025.06.04
[DevOps] CI/CD란?  (0) 2025.06.04
'DevOps' 카테고리의 다른 글
  • [DevOps] 오픈시프트(OpenShift)와 쿠버네티스(Kubernetes)
  • [DevOps] Jenkins란?
  • [DevOps] CI/CD란?
s_ih_yun
s_ih_yun
  • s_ih_yun
    CODESYUN
    s_ih_yun
  • 전체
    오늘
    어제
    • 분류 전체보기 (339)
      • Web (8)
      • Java (7)
      • Spring (19)
      • Git (16)
      • MyBatis (1)
      • HTML & CSS (14)
      • JavaScript (11)
      • DevOps (4)
      • Cloud (8)
      • Lanuage (13)
        • C++ (3)
        • Python (10)
      • DB (1)
        • MySQL (1)
        • Oracle (2)
      • Computer Science (26)
        • Concept (3)
        • Algorithm (23)
      • Baekjoon (104)
        • 단계별로 풀어보기 (78)
      • CodeUp (98)
        • Python 기초 100제 (98)
      • Programmers (2)
      • Books (3)
      • etc (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • Syun's Pages
  • 인기 글

  • 태그

    aws
    VS Code
    웹
    myBatis
    CodeUp 기초 100제
    SourceTree
    Python
    web
    알고리즘
    spring
    JavaScript
    자료구조
    clean code
    oracle
    c++
    HTML
    codeup
    git
    CSS
    java
    Cloud
    db
    Tistory
    BOJ
    github
    MySQL
    단계별로 풀어보기
    Programmers
    C
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
s_ih_yun
[DevOps] 컨테이너(Container)와 도커(Docker)
상단으로

티스토리툴바