Cloud/Docker
Docker) Docker를 알아보기
Adım Kim
2022. 9. 27. 19:18
Docker란?
- Docker는 Container기술의 한 종류, Container 생성과 관리 역할을 한다.
- VM(Virtual Machine)처럼 완전히 독립된 실행환경(Container)을 생성한다.
- VM은 Hypervisor기반 가상화를 한다면, Docker는 Container engine을 통해 프로세스 단위 가상화를 한다.
- Docker는 host의 O/S를 사용하기 때문에, 운영체제를 설치하는것과 유사한 효과를 내면서 설치 용량이 작고 실행 속도도 빠르다.
- Docker Container는 소프트웨어 실행에 필요한 모든것을 한 파일 시스템안에 감싼 하나의 상자같은 모양이다.
- Docker Container안에는 런타임코드, 시스템도구, 시스템라이브러리등 서버에 설치되는 모든것이 들어가기 때문에 host의 O/S에 관계없이 동일하게 실행될 것을 보증한다.
Docker 구성요소
- Docker Engine(Docker Run-Time)과 Docker Container로 구성되어있다.
- Docker Engine
- Docker Engine은 container 생성 및 관리하는 역할을 수행한다.
- 리눅스 컨테이너 (LXC) 기술을 기반으로 한다.
- chroot (change root) : 특정 디렉토리를 최상위 디렉토리 root로 인식하게 하는 리눅스 명령
- namespace : 프로세스 자원을 관리하는 기능으로 mnt, pid, net, ipc, user등의 자원을 그룹화하여 할당한다.
- cgroup (control group) : CPU, memory, disk, I/O, network등의 자원 사용량 제어를 통해 특정 애플리케이션의 과도한 자원 사용을 제한한다.
- UnionFS (Union File System) : 여러개의 파일시스템을 하나의 파일시스템으로 마운트 시키는 가상파일시스템
- Docker Container
- 격리(Isolate)된 응용프로그램 실행환경이다.
- (Container 장점1) 하이퍼바이저와 게스트 O/S가 없기때문에 크기가 작다.
- (Container 장점2) 크기가 작아서 이미지 복제, 이관, 배포가 쉽다.
- (Container 장점3) 게스트O/S를 부팅하지 않기 때문에, 애플리케이션 시작 시간이 빠르다.
- (Container 장점4) 가상머신보다 가볍기 때문에, 애플리케이션을 더 많이 실행할 수 있다.