-
[Docker] Docker의 기본 개념 및 실행 흐름Dev Ops/Docker 2023. 1. 21. 19:00반응형
Docker란?
: 컨테이너 기반의 오픈소스 가상화 플랫폼
- 다양한 프로그램, 실행 환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포와 관리를 단순화
- 백엔드 프로그램, 데이터베이스 서버, 메시지 큐 등 어떤 프로그램도 컨테이너로 추상화 가능
- 조립PC, AWS, Azure, Google cloud 등 어디서든 실행 가능Docker Container
: 격리된 공간에서 프로세스가 동작하는 가상화 기술 중 하나
📍참고: 기존의 가상화 방식
1) OS 가상화
- 호스트 OS 위에 게스트 OS 전체를 가상화하여 사용(VMware, Virtual Box)
- 사용법이 간단하지만 무겁고 느려 운영환경에서 사용 불가
2) HVM(CPU 가상화), 반가상화
- 게스트 OS가 필요하지만 전체 OS를 가상화하지 않기 때문에 성능이 어느정도 향상(AWS 등의 가상 컴퓨팅 기술의 기반이 됨)
3) 리눅스 컨테이너(LXC) : 프로세스 격리
- CPU나 메모리는 프로세스가 필요한 만큼만 추가로 사용, 성능상 손실이 거의 없음➡️ 도커는 LXC 기반으로 시작하였으며, 0.9 버전 이후부터 자체적인 libcontainer 기술을 사용했으며 추후 rucC 기술에 합쳐짐
Docker Image
: 컨테이너 실행에 필요한 파일과 설정값 등을 포함하고 있는 것
- 상태값을 가지지 않고 변하지 않음 (Immutable)
- 컨테이너는 이미지를 실행한 상태이며, 추가되거나 변하는 값은 컨테이너에 저장
- 같은 이미지에서 여러 개의 컨테이너를 생성할 수 있으며, 컨테이너 상태가 바뀌거나 삭제되도 이미지는 변하지 않음
- 도커 이미지는 Docker hub에 등록하거나 Docker Registry 저장소를 직접 만들어 관리할 수 있음레이어 저장 방식
이미지 컨테이너에 담긴 파일들을 레이어화하여 여러개의 레이어를 하나의 파일 시스템으로 사용할 수 있게 함(유니온 파일 시스템)
- 이미지는 여러개의 읽기 전용 레이어로 구성되고 파일이 추가되거나 수정되면 새로운 레이어가 생성
반응형