Skip to Content
Suffering builds character
아카이브25.devopsDocker개요4.컨테이너 개요

4.컨테이너 개요

가상화로 인해 발생하는 유휴(Idle) 자원의 낭비를 막고자 컨테이너(Container)라는 개념이 등장하게 됨

컨테이너는 화물(Application)을 정해진 규격에 맞게 적재할 수 있도록 되어 있기 때문에,
다른 화물들과 독립적으로 격리할 수 있음

2. 격리된 환경으로 빠르고 간편하게 서비스를 배포

바다가 인터넷 환경이라면, 개발한 서비스는 하나의 배라고 볼 수 있으며,
배에 선적된 컨테이너는 서비스 운영에 필요한 독립적으로 격리된 개별 서버들이라고 볼 수 있음
ex. Next.js, Spring, DBMS 서버 프로세스
→ 배는 컨테이너를 싣고 바다를 항해함

Image Ref. 

컨테이너 런타임 기술 중 하나인 Docker는 컨테이너 엔진(Container Engine)인 Docker Engine을 통해 호스트 운영체제(Host OS)의 커널을 공유하여 CPU나 메모리 등의 자원을 격리한 가상의 공간인 ‘컨테이너(Container)‘를 생성함

왼쪽은 VirtualBox같은 가상화 소프트웨어를 통한 서버 구성 방식
오른쪽은 Docker와 같은 컨테이너 런타임 기술을 통한 서버 구성 방식
Image Ref. 

2-1. 가상화와 컨테이너 방식의 비교

가상화와 컨테이너 방식을 비교하면 다음과 같음

구분가상화컨테이너
동작 방식각 App들은 개별 OS에서 동작여러 App들은 하나의 OS 커널을 공유
부팅 시간부팅하는데 최소 몇 분의 시간이 소요됨몇 초내로 컨테이너가 생성됨
버전 관리 여부불가능Docker Image 개념을 활용하여 버전 관리 가능
OSWindows / Linux 등 여러 OS 선택 가능Host OS 하나로 동작
이미지 용량최소 1GiB보통 100 MiB 미만
Last updated on