Infra & Devops/Docker
[Docker] Docker 란?
겸둥이xz
2021. 9. 14. 03:48
반응형
Docker의 개요
- Docker는 애플리케이션의 실행에 필요한 환경을 하나의 이미지로 모아둔다
- 이미지를 사용하여 다양한 환경에서 애플리케이션 실행 환경을 구축 및 운용하기 위한 오픈 소스 플랫폼
- 이미지만 있으면 동일환 환경에서 애플리케이션을 가동할 수 있다
- Docker 내부에서 컨테이너 기술을 사용한다
- 이식성(portability)이 높기 때문에 클라우드 시스템과 친화력도 높다
- 온프레미스 환경에 대한 이쩐 뿐만 아니라 '온프레미스 ➡️ 클라우드', '클라우드 ➡️ 온프레미스' 간에도 시스템 요건이나 예산에 따라 손쉽게 실행 환경을 선택할 수 있다
Docker 컨테이너의 특징
- 모듈성
- 전체 애플리케이션을 분해할 필요 없이 일부를 분해하고, 업데이트 또는 복구하는 능력에 집중
- 계층 및 이미지 버전 제어
- 각 도커 이미지 파일은 일련의 계층으로 이루어짐, 새로운 컨테이너를 구축할 때 이러한 계층을 사용하므로 구축 프로세스가 빠름
- 롤백
- 모든 이미지에는 계층이 있고, 현재의 이미지가 부적절한 경우 이전 버전으로 롤백할 수 있음
- 신속한 배포
- 컨테이너를 활용해 배포 시간을 몇 초로 단축 가능
VM과 달리 컨테이너는 호스트 OS 리소스의 제어된 부분을 이용하고, 요소들이 VM 수준으로 엄격히 격리되지 않는다.
Docker 컨테이너는 stateless, immutable 한 특징이 있다. 기본적으로 이미지는 일단 생성되면 변경되지 않는다.
그러나 컨테이너 인스턴스는 일시적이고, 인스턴스가 시스템 메모리로부터 제거되면 영원히 사라진다.
VM처럼 컨테이너를 세션들에 걸쳐 지속시키려면 지속성을 위한 설계가 필요하다.
반응형