일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 머신러닝
- gpt
- GPT-4
- ChatGPT
- LG
- 지도학습
- deep learning
- regression
- 해커톤
- Classification
- supervised learning
- 회귀
- OpenAI
- 티스토리챌린지
- LLM
- 딥러닝
- AI
- 오블완
- LG Aimers 4th
- PCA
- 분류
- Machine Learning
- LG Aimers
Archives
- Today
- Total
SYDev
[마이크로서비스프로그래밍] Lecture06 - Docker Overview 본문
경희대학교 이성원 교수님의 마이크로서비스 프로그래밍 수업을 기반으로 정리한 글입니다.
Learning Objective
- Docker overview
- Basic commands
- Practice
- Install Docker Desktop on your Desktop
- Test-drive of examples
Docker Overview
1. Docker Editions
- @ OLD Days
- Community Edition(CE) - 개인 개발자 & 소규모 팀에 적합
- Enterprise Edition(EE) - 기업 개발자 & IT 팀에 적합
- @ Today
2. Docker Engine
- container를 관리하는 지속성 있는 process
- Docker의 core work - Building, Running & Distributing containers
- running as a background service or daemon on the host
-> network: 배포한 software 사이에 통신
-> data volumes: software가 다뤄야 할 data 저장
- daemon: background server?
3. Docker Daemon
- Docker API requests를 수신하고 Docker objects를 관리(images, containers, networks, volumes, ...)함
- docker services 관리를 위해 다른 daemons와 소통함
4. Docker Client
- Docker engine에 instructions를 입력하기 위해 사용하는 Command Line Interface(CLI)
- 웹 구조의 client-server와 유사
- Docker client는 docker engine에게 컨테이너/컨테이너화 작업을 수행하라 요청
- ex) docker daemondㅔ registry로부터 image를 pull하라고 요청
- Docker command는 docker API를 사용
- docker client는 1개 이상의 daemon과 소통 가능
5. Docker Architecture
6. Docker Registries
- Docker images 저장소
- Public Registry
- 누구든 사용 가능
- docker hub & docker cloud
- Private Registry
- Docker Trusted Registry(DTR)
- docker는 docker hub에서 image를 탐색하는 것을 default로 설정되어 있음
- registry로부터 필요한 image를 pulling
- docker pull
- docker run
- configured registry에 image를 pushing
- docker push
7. Docker Ecosystem
8. Underlying Technologies
- Written in Go language
- Linux kernel의 이점을 취할 수 있음
- Namespaces
- Control groups
- Union file systems
- Container format
- Origin of Namespaces, Control groups -> unix 같은 multiple users가 함께 쓰는 os에서 충돌을 방지하기 위한 개념
Namespaces
- Docker는 container라는 독립된 workspace를 만들기 위한 기술인 namespaces를 사용
- container 실행 -> Docker는 container를 위한 namespaces의 set을 생성
- namespaces는 독립된 layer를 제공
- container의 각 aspect는 분리된 namespaces에서 각각 실행되고, 권한도 각 namespace에 제한된다.
pid namespace: Process Isolation(process id)
net namespace: Managing Network(networking)
ipc namespace: Managing access to IPC resources(interprocess communication)
mnt namespace: Managing filesystem mount points(mount)
uts namespace: Isolating kernel and version identifiers(unix timesharing system)
Reference: https://docs.docker.com/engine/docker-overview/
-> 이런 namespace를 container마다 독립적으로 만들어줌 -> container가 독립적인 machine처럼 동작할 수 있게 해줌
Control Groups(cgroups)
- resource management의 역할
- 각각의 container가 사용할 수 있는 hardware resource를 제한
'3학년 2학기 전공 > 마이크로서비스프로그래밍' 카테고리의 다른 글
[마이크로서비스프로그래밍] Lecture05 - Docker Introduction (1) | 2024.09.17 |
---|---|
[마이크로서비스프로그래밍] Lecture04 - Virtualization & Container Technology (0) | 2024.09.13 |
[마이크로서비스프로그래밍] Lecture03 - Infrastructure & Virtualization (8) | 2024.09.13 |
[마이크로서비스프로그래밍] Lecture02 - Cloud Computing & Infrastructure (7) | 2024.09.12 |
[마이크로서비스프로그래밍] Lecture01 - Overview (13) | 2024.09.11 |