container 개념

Jimin·2024년 3월 13일
0

Docker

목록 보기
1/4
post-thumbnail

container

소프트웨어를 실행하는데 필요한 코드, 런타임, 시스템 도구, 시스템 라이브러리 및 설정을 포함하는 표준화된 단위이다.

  • 한 번 빌드하면, 어디서나 실행될 수 있다.(Build onde, run anywhere)
    컨테이너화된 소프트웨어는 개발 환경에서든 운영 환경에서든,
    컨테이너가 실행되는 리눅스나 윈도우와 같은 호스트 OS에 관계없이 일관된 방식으로 실행된다.

container의 핵심 개념

  1. 격리
  2. 경량성
  3. 이식성
  4. 일관성

1. 격리

컨테이너는 운영체제 수준의 가상화를 통해 각각의 컨테이너를 격리한다.

이를 통해 각 컨테이너는 마치 별도의 물리적 머신처럼 독립적으로 작동하며, 다른 컨테이너와 OS 자원(예: CPU, 메모리)을 공유하지 않는다.

2. 경량성

컨테이너는 가상 머신(VM)에 비해 훨씬 더 경량적이다.
VM은 각각의 전체 운영체제를 로드해야 하지만, 컨테이너는 호스트 운영체제의 커널을 공유하고, 애플리케이션 실행에 필요한 최소한의 구성만을 포함한다.
이를 통해 더 빠르고 더 적은 메모리 용량을 차지하게 된다.

3. 이식성

컨테이너는 애플리케이션과 모든 의존성을 하나의 패키지로 묶어준다.
이 묶음은 다양한 환경(개발, 테스트, 프로덕션) 및 클라우드와 온프레미스 시스템에서도 변경 없이 실행할 수 있다.

4. 일관성

개발자는 로컬에서 애플리케이션을 컨테이너로 개발하고, 동일한 컨테이너를 테스트 및 프로덕션 환경에서 실행할 수 있다.
이로 인해 "내 컴퓨터에서는 되는데요?"라는 문제를 크게 줄일 수 있다.

profile
https://github.com/Dingadung

0개의 댓글