Isolated, light weight Linux Process
using host kernel
1. 왜 필요한가?
이기종 Device, OS,
Windows 기반으로한 Application이
Linux/ MAC OS에서는 돌아가지 않는 경우
∴ Docker resolve a problem of environment disparity
(ex. OS, Programming Language)
어떻게 구성되어있나?
Docker 도 클라이언트와 서버로 이뤄져있다.
Docker Client
CLI , GUI 를 모두 제공한다.
Unix Socket
도커는 최소한의 기능을 탑재한 경량화된 리눅스 프로세스라고 했다.
Client - Server 간 통신을 Unix 소켓으로 담당한다.
Docker Server
기본적으로 Docker daemon 에서 실질적인 작업이 이뤄진다.
클라이언트에서 CLI 로 입력한 명령을 소켓을 통해 받아와 실질적으로 데몬에서 실행한다.
3. 기능
- 원하는 개발 환경을 파일에 저장시, Docker가 이를 원하는 어떤 머신이든 해당 환경을 시뮬레이션 해줌.
- 이 환경들이 각기 독립적으로 존재하여 무슨 환경이든 모듈식으로 관리 가능.
- (Python Server, Java Server, DB Server 다 따로 필요 X)
- 모든 독립적 운용이 Docker하나로 이루어질 수 있음.
결론=> 이기종 환경 호환 문제는
Docker가 해결해준다.!
4. 원리
Virtual Machine | KVM(Kernel-based Virtual Machine) |
host OS위에 Guest OS 전체를 가상화함. 사용법이 간단한대신 무겁고 느림. |
Host OS 의 커널을 컨테이너간 공유함. |
■ Image
컨테이너 실행에 필요한 모든 파일과 설정 정보(상태 값)을 가짐.
Immutable 불변성.
한 이미지 혹은 서버 내에 여러 Container생성 가능.
■ Layer
🔗 References
'기타 > Docker' 카테고리의 다른 글
[Docker] volume with CLI (0) | 2022.05.19 |
---|---|
[Docker] volume 사용팁 (0) | 2022.05.18 |
[Docker] Docker compose (0) | 2021.12.20 |
Docker 개념 (0) | 2021.12.18 |
[Docker] 주요 명령어 (0) | 2020.11.30 |