Docker 란?
도커는 컨테이너(*애플리케이션 및 해당 구동 환경을 격리한 공간) 기반의 가상화 플랫폼
기존 가상 머신 vs Docker
기존의 가상 머신
- Hypervisior에 의해 GuestOS 생성
- 라이브러리, 커널 등 완전히 독립된 공간과 시스템 자원 할당 받아 사용
- 대표 툴 : VirtualBox, VMware
도커 컨테이너
- 프로세스 단위의 격리 환경(chroot, namespace, cgroup 등), 호스트의 커널 공유
- 라이브러리 및 실행 파일만 할당 하여 가벼움
- 애플리케이션 운영 표준화 및 어디서나 안정적으로 실행 가능
Docker의 chroot
chroot (Change root)
- root directory(A)의 기준을 실행할 애플리케이션의 하위 directory (B)로 변경하는 역할
- root directory 변경시 변경된 하위 diretory (B)가 루트 역할
- 신규 root directory(B) 상위 directory (A)에 접근 불가하고 자연스럽게 격리된 공간이 만들어짐
chroot 관련 참고 문헌
https://www.44bits.io/ko/post/change-root-directory-by-using-chroot
Docker Image와 Container
Docker Image
- 서비스(애플리케이션) 운영에 필요한 서버 프로그램, 라이브러리, 컴파일 된 실행 파일 묶은 형태
- 소스. 의존성 패키지 등이 같이 명시 된 Dockerfile로 이미지 생성
- Dockerhub를 통한 이미지 pull/push 버전 관리 가능
Docker container
- 이미지에 명시된 정보를 통해 해당 응용 프로그램 자체를 패키징 & 캡슐화 하여 프로세스를 동작시키는 기술
- 각각의 컨테이너는 독립적으로 실행됨
Docker 생명주기
'DevOps > Docker' 카테고리의 다른 글
[Docker] Docker-compose란? (작동 구조, yaml 구성) (1) | 2022.08.17 |
---|---|
[Docker] Docker Network 종류 (0) | 2022.08.17 |
[Docker] Docker Volume 3가지 구성 방법 (0) | 2022.08.16 |
[Docker] Dockerfile 빌드 과정, 문법 정리, Docker Layer (0) | 2022.08.16 |
[Docker] Docker, Docker-compose 명령어 (0) | 2022.08.16 |