DevOps

Docker가 컨테이너를 실행하는 원리

일상코더 2023. 2. 20. 17:55

도커의 워크 플로우

       "빌드" -> " 공유" -> "실행"

 

 

 

도커 엔진(Docker Engine)

 

                    - 도커의 관리 기능을 맡는 컴포넌트다. 로컬 이미지 캐시를 담당 하므로 새로운 이미지가 필요하면 이미지를 내려받으며, 

                     기존 이미지가 있으면 전에 내려받은 이미지를 사용한다.

                  - 호스트 운영체제와 함께 컨테이너와 가상 네트워크 등 도커 리소스를 만드는 일도 담당한다.

                  - 도커 엔진은 항시 동작하는 백그라운드 프로세스다.  

                  - 도커 API는 표준 HTTP기반 REST API다.

                  - 도커 엔진의 설정을 수정하면 이 API를 네트워크를 경유해 외부 컴퓨터로 부터 호출 할 수 없도록 차단하거나 허용할 수 있다.

 

 

도커 명령행 인터페이스(Docker command-line interface) 

 

                   - 도커 CLI는  도커 API의 클라이너트다. 

                   - 우리가 docker 명령을 사용할 때 실제로 도커 API를 호출하는 것이 바로 도커 CLI다.

 

 

도커 설계의 이해

 

                   - 도커 엔진과 상호 작용 할 수 있는 유일한 방법은 API를 통하는 방법뿐이다.

                   - CLI는 API에 요청을 전달하는 역할을 한다.

                   - 도커 엔진은 containerd라는 컴포넌트를 통해 컨테이너를 실제로 관리한다.

                   - containerd는 호스트 운영체제가 제공하는 기능을 통해 컨테이너, 즉 가상환경을 만든다.

                   - containerd는 CNCF에서 관리하는 오픈 소스 프로젝트 이다.

                   - 컨테이너는 개방형 컨테이너 이니셔티브라는 공개된 개방형 표준이다.