테키테크 TEKITECH
Docker 이해하기 본문
목차
- 1. Docker?
- 2. Core Concepts
- 도커 파일 Docker File
- 도커 이미지 Docker Image
- 도커 컨테이너 Docker Container
- 도커 엔진 Docker Engine
- 도커 클라이언트 Docker Client
- 도커 데몬 Docker Daemon
- 도커 호스트 운영체제 Docker Host OS
- 도커 저장소 Docker Registry
- 도커 허브 Docker Hub
- 도커 스웜 Docker Swarm
1. Docker?
컨테이너 Container
다양한 가상화 방식 중 도커Docker는 컨테이너Container 형태이다. 리눅스 컨테이너(LXC: Linux Container)를 기반으로 만들어졌으며, PyCon 2013에서 도커가 처음 소개된 이후 컨테이너형 가상화 방식이 널리 알려졌다.
→ 「The Future of Linux Contatior」 - by Solomon Kykes
Google의 Go언어
도커는 속도가 빠른 Go로 만들어져 하드웨어를 제어하는 속도가 빠른 편이다. 결과적으로 컨테이너를 구축하고 운용하는 속도가 빨라졌다.
쿠버네티스 Kubernetes
오케스트레이션 서버Orchestration Server에서 도커와 쿠버네티스Kubernetes는 한 쌍이다. 도커의 가볍고 빠른 컨테이너와 이 컨테이너들을 운용하는 쿠버네티스를 통해 서버 관리가 매우 수월해지기 때문이다. 도커는 쉽게 설치해서 사용할 수 있기 때문에 로컬에서 도커를 사용해 다양한 개발 환경을 구축할 때에도 도움이 된다.
2. Core Concepts
[1] 도커 파일 Docker File
- 도커 이미지Docker Image를 만들기 위해 사용하는 명령 파일
- 패키지, 의존성, 소스코드, 스크립트 등을 하나의 파일에 기록
- 도커 이미지는 수정할 수 없기 때문에 도커 파일을 수정해서 새로운 이미지를 생성
[2] 도커 이미지 Docker Image
- 도커 컨테이너Docker Container를 만드는 이미지
- 도커 컨테이너 실행에 필요한 파일, 설정값 등을 포함하고 있으며 수정 불가 (immutable)
✏️ 도커 이미지 업데이트 Flow
- 레지스트리에서 수정할 도커 이미지 다운로드
- 이미지를 도커 파일로 변환
- 도커 파일 수정 (새로운 프로그램 적용, 환경설정 변경, 등)
- 도커 파일을 빌드해서 새로운 도커 이미지 생성
[3] 도커 컨테이너 Docker Container
- Application과 그 application을 구동할 수 있는 환경(시스템 리소스, 네트워크 등)을 사용할 수 있는 독립된 공간
- 하나의 레지스트리에 하나 이상의 도커 컨테이너를 두고 사용
- 하나 또는 둘 이상의 컨테이너로 서비스 구성
[4] 도커 엔진 Docker Engine
- 서버에 도커를 적용하기 위해 설치하는 실제 서비스
[5] 도커 클라이언트 Docker Client
- 도커는 RESTful API로 소통하는 Client-Server 체계
- Client가 사용자가 요청하는 build, run, pull, push 등의 작업을 받아 HTTP API Request로 변환하여 Server에 요청
[6] 도커 데몬 Docker Daemon
- 도커 클라이언트가 전달한 요청을 수행
[7] 도커 호스트 운영체제 Docker Host OS
- 도커를 올린 실제 서버
- 다양한 가상화 방식 중 컨테이너형 가상화 개념에서의 호스트 운영체제
→ VM은 가상환경마다 별도로 Guest OS를 운영하는 반면, 도커는 컨테이너를 Host OS 위에서 운영
→ 사용자 입장에서 도커의 컨테이너는 호스트 운영체제와 격리된 가상머신
→ 호스트 운영체제 입장에서 도커의 컨테이너는 프로세스
[8] 도커 레지스트리 Docker Registry
- 도커 내부에서 도커 이미지들을 보관하는 저장소
- 클라우드 호스팅 업체에서도 컨테이너 레지스트리Container Registry 제공 (GCR, ECR, 등)
[9] 도커 허브 Docker Hub
- 도커에서 운영하는 도커 레지스트리
- Git처럼 로그인 후 도커 이미지를 업로드(push)/다운로드(pull)하여 사용할 수 있다.
[10] 도커 스웜 Docker Swarm
- 여러 개의 도커 컨테이너에 대해 batch, load balancing, 장애 복구 등 관리를 위한 컨테이너 오케스트레이션 툴
- 쿠버네티스, 아파치 메소스 등 비슷한 역할을 하는 컨테이너 오케스트레이션 툴 존재
※ 참고 자료와 이미지 출처 ※
반응형
'Tech > Ops' 카테고리의 다른 글
[Docker] 도커 이미지 삭제와 오류 / 컨테이너 확인하고 컨테이너 삭제하기 (2) | 2021.09.10 |
---|---|
[Docker] 도커 엔진 실행부터 이미지로 컨테이너 실행까지 (MacOS+CLI 환경) - 3. Docker Container 사용하기 (0) | 2021.09.09 |
[Docker] 도커 엔진 실행부터 이미지로 컨테이너 실행까지 (MacOS+CLI 환경) - 2. Docker Container 생성 (0) | 2021.09.06 |
[Docker] 도커 엔진 실행부터 이미지로 컨테이너 실행까지 (MacOS+CLI 환경) - 1. Docker Image(Ubuntu) 다운로드 (0) | 2021.09.06 |
CI / CD / CT - MLOps와 DevOps 이해하기 (0) | 2021.08.31 |
Comments