3학년 2학기 전공/마이크로서비스프로그래밍
[마이크로서비스프로그래밍] Lecture05 - Docker Introduction
시데브
2024. 9. 17. 16:16
경희대학교 이성원 교수님의 마이크로서비스 프로그래밍 수업을 기반으로 정리한 글입니다.
Learning Objective
- Docker introduction
- "Hello Docker"
- Trouble shooting of Docker life
Docker
1. What is Docker?
- Open Platform for developing, shipping, running applications -> 거의 대부분의 platform 위에서 동작 가능 & open source -> docker 위에서 실행가능하다면, platform independent하게 program을 다룰 수 있음
- 사용자의 infrastructure로부터 사용자의 applications를 분리
- software를 빠르게 deliver
- application이 동작할 때 필요한 insfrastructure를 프로그래밍하듯이 code로 관리 -> Infrastructure as Code
2. Why use Docker?
-> 항상 ubuntu:latest 위에 python3를 올린 형태를 구축할 수 있다는 믿음
-> Immutable Infrastructure
- Flexible: 복잡한 applications도 containerized될 수 있음 -> 돌아가는 환경을 고려하지 않고, program을 짤 수 있음
- Lightweight: guest OS가 올라가지 않고, host OS만 존재하기 때문에 lightweight함
- Interchangeable: software의 update, upgrade, version up/down이 자유로움
3. Docker Image
- application 실행을 위해 필요한 모든 것을 포함한 실행가능한 package
- code
- a runtime libraries
- environment variables
- configuration files
- etc. ...
4. Docker Container
- image의 runtime instance
- image 실행 -> memory 위에서 container가 됨 (multiple containers가 같은 image로부터 발생)
- docker ps -> running containers 확인 가능
5. Sharing Immutable Infrastructures
- Docker Registry: 도커 이미지를 관리하는 일종의 저장소
- ex) dockerhub
- 보안, CI/CD 등의 이유로 application 배포를 한 번에 수행하는 파이프라인을 제공하는 registry를 사용
Docker 실습
1. Birds-Eye-View of Docker
참고자료
[Docker / Kubernetes] 6-1. 도커 레지스트리
도커 이미지를 저장하고 관리하는 도커 레지스트리에 대해 자세히 알아봅시다. 🤔
velog.io
728x90
반응형