Docker - Container와 Docker에 대해서 알아보자.
Docker - Container와 Docker에 대해서 알아보자.
오늘은 운영체제에 관계없이 필요한 모든 파일을 패키징하여 사용하는 Container 기술과 이 기술을 편리하게 사용할 수 있게 해주는 Docker에 대해서 알아보자.
Container
쉽게 말해 애플리케이션, 실행 환경, 라이브러리, 설정 파일과 같은 실행에 필요한 모든 요소를 하나로 패키징한 실행 단위를 뜻한다.
덕분에 개발 환경이 다르든, 서버가 리눅스든 맥이든 윈도우든 항상 동일하게 실행 가능하다.
컨테이너는 종종 가상머신(VM)과 비교되는데 차이점은 아래와 같다.
| 구분 | 가상머신(VM) | 컨테이너 |
|---|---|---|
| 부팅 속도 | 느림 (OS 전체 부팅) | 빠름 (초단위) |
| 용량 | 큼 (수 GB 이상) | 작음 (수십 MB ~ 수백 MB) |
| 실행 단위 | OS + 앱 | 앱만 |
| 격리 수준 | 하이퍼바이저 | OS 커널 수준 |
| 성능 오버헤드 | 있음 | 거의 없음 |
Docker
컨테이너 기술을 실무에 쉽게 적용할 수 있도록 도와주는 도구이자 플랫폼이다.
이미지 생성, 컨테이너 실행, 네트워크 구성, 볼륨 관리 등 컨테이너에 필요한 기능을 전부 제공한다.
Docker의 구성 요소
- Dockerfile: 패키지, 환경 변수 설정 등 Docker Image를 빌드하기 위해 작성하는 파일
- Docker Image: 컨테이너 실행에 필요한 모든 데이터를 포함한 상태값이며 불변
- 하나의 Image로 여러 개의 Container를 띄우는 것이 가능함
- 컨테이너에 손상이 발생하더라도 Image에는 아무런 피해가 가지 않음
- Docker Container: Container가 실행되면 Docker Image에 설정된 값들이 실제 컴퓨팅 자원과 연결됨
This post is licensed under CC BY 4.0 by the author.