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
    
    
  반응형