01. What is Docker?

이번 μ„Ήμ…˜μ—μ„œλŠ” 도컀 ECS 및 EKS λ₯Ό ν•™μŠ΅ν•œλ‹€.

  • μ•± 배포λ₯Ό μœ„ν•œ μ†Œν”„νŠΈμ›¨μ–΄ 개발 ν”Œλž«νΌμ΄λ‹€. (μ»¨ν…Œμ΄λ„ˆ 기술)
  • μ»¨ν…Œμ΄λ„ˆμ— 앱이 νŒ¨ν‚€μ§•λ˜λŠ”λ°, μ»¨ν…Œμ΄λ„ˆλŠ” ν‘œμ€€ν™”λ˜μ–΄μžˆμ–΄ 아무 OS μ—μ„œλ‚˜ μ‹€ν–‰κ°€λŠ₯
  • 앱이 μ»¨ν…Œμ΄λ„ˆμ— νŒ¨ν‚€μ§•λ˜λ©΄ μ–΄λŠ OSμ—μ„œλ“  같은 λ°©μ‹μœΌλ‘œ μ‹€ν–‰λœλ‹€.
    • Any machine
    • ν˜Έν™˜μ„± λ¬Έμ œκ°€ μ—†λ‹€.
    • ν–‰μœ„ νŠΉμ„±λ„ μ˜ˆμΈ‘κ°€λŠ₯
    • μž‘μ—…μ„ λœμ–΄μ€€λ‹€.
    • μœ μ§€ 및 배포가 쉽닀.
    • μ–Έμ–΄, 운영체제, κΈ°μˆ μ— 상관없이 싀행이 κ°€λŠ₯ν•˜λ‹€.
  • μ‚¬μš© 사둀
    • λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ 아킀텍쳐 MSA
    • μ˜¨ν”„λ ˆλ―ΈμŠ€μ—μ„œ ν΄λΌμš°λ“œλ‘œ 앱을 Lift - And - Shift ν•˜κΈ°λ„ 함
    • μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹€ν–‰ν•˜λŠ” μ–΄λ–€ κ²½μš°μ—λ„ μ‚¬μš©κ°€λŠ₯

02. Docker on an OS

λ„μ»€λŠ” μš΄μ˜μ²΄μ œμ—μ„œ μ–΄λ–»κ²Œ μž‘λ™ν•˜λŠ”μ§€ μ‚΄νŽ΄λ³΄μž.

image-20221020013506855

  • μš°μ„  μ„œλ²„κ°€ μžˆλ‹€. (ex. EC2)
    • μ–΄λ–€ μœ ν˜•μ˜ μ„œλ²„λ“  λ˜‘κ°™λ‹€. (EC2 μ˜ˆμ‹œ)
  • 도컀 μ—μ΄μ „νŠΈλ₯Ό μ‹€ν–‰ν•˜λ©΄ 도컀 μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹œμž‘ν•  수 μžˆλ‹€.
  • 1번 μ§Έ 도컀 μ»¨ν…Œμ΄λ„ˆλŠ” Java App을 포함
  • 2번 μ§Έ 도컀 μ»¨ν…Œμ΄λ„ˆλŠ” Node.js App이 μžˆλ‹€.
  • λ‹€μˆ˜μ˜ 도컀 μ»¨ν…Œμ΄λ„ˆκ°€ λ™μ‹œμ— 싀행될 수 μžˆλ‹€.


  • Java App을 가진 μ—¬λŸ¬ Docker Container κ°€ μžˆμ„ 수 μžˆλ‹€.
  • Node.jsλ₯Ό 가진 μ—¬λŸ¬ 도컀 μ»¨ν…Œμ΄λ„ˆκ°€ μžˆμ„μˆ˜λ„ μžˆλ‹€.
  • 도컀 λ‚΄μ—μ„œλ„ MySQL λ“±μ˜ DB도 μ‹€ν–‰κ°€λŠ₯ν•˜λ‹ˆ, μ•„μ£Ό λ‹€μš©λ„λ‘œ ν™œμš©λœλ‹€.
  • μ„œλ²„ κ΄€μ μ—μ„œλŠ” λͺ¨λ‘ 도컀 μ»¨ν…Œμ΄λ„ˆλ‘œ 보인닀.

03. Where are Docker images stored?

도컀 μ΄λ―Έμ§€λŠ” 어디에 μ €μž₯λ˜λŠ”μ§€ μ•Œμ•„λ³΄μž

  • 도컀 μ΄λ―Έμ§€λŠ” 도컀 λ ˆν¬μ§€ν† λ¦¬ λΌλŠ” 곳에 μ €μž₯λœλ‹€.
  • μ—¬λŸ¬ μ˜΅μ…˜μ΄ μžˆλ‹€.
    1. Docker Hub
      • 유λͺ…ν•œ 퍼블릭 λ ˆν¬μ§€ν† λ¦¬
      • λ§Žμ€ κΈ°μˆ μ— λ§žλŠ” κΈ°λ³Έ 이미지λ₯Ό 찾을 수 μžˆλ‹€.
      • Ubuntu or MySQL κ³Ό 같은 OS용 κΈ°λ³Έ 이미지도 λ§ˆμ°¬κ°€μ§€
    2. Amazon ECR (Elastic Container Registry)
      • 프라이빗 λ ˆν¬μ§€ν† λ¦¬
      • λΉ„κ³΅κ°œ 이미지λ₯Ό μ‹€ν–‰ ν•  수 μžˆλ‹€.
      • Amazon ECR Public Gallery 라 λΆˆλ¦¬λŠ” 퍼블릭 λ ˆν¬μ§€ν† λ¦¬ μ˜΅μ…˜λ„ μžˆλ‹€.

04. Docker vs Virtual Machines

도컀와 가상머신에 차이

  • 도컀 μ—­μ‹œ 가상화 기술의 일쒅이긴 ν•˜μ§€λ§Œ, μˆœμ „νžˆ 가상화 κΈ°μˆ μ€ μ•„λ‹ˆλ‹€.
  • λ¦¬μ†ŒμŠ€κ°€ ν˜ΈμŠ€νŠΈμ™€ κ³΅μœ λ˜μ–΄ ν•œ μ„œλ²„μ—μ„œ λ‹€μˆ˜μ˜ μ»¨ν…Œμ΄λ„ˆλ₯Ό κ³΅μœ ν•  수 μžˆλ‹€.

image-20221020014137257

  1. 가상머신

    • 가상 λ¨Έμ‹ μ˜ μ•„ν‚€ν…μ²˜λ₯Ό μ‚΄νŽ΄λ³΄λ©΄ 인프라와 호슀트 μš΄μ˜μ²΄μ œκ°€ 있으며, κ·Έ μœ„μ— ν•˜μ΄νΌλ°”μ΄μ €κ°€ 있고 μ•±κ³Ό Guest μš΄μ˜μ²΄μ œκ°€ μžˆλ‹€. EC2의 원리이닀.

    • λ‹€μ‹œλ§ν•΄, EC2 머신은 ν•˜μ΄νΌλ°”μ΄μ €μ— μ‹€ν–‰λ˜λŠ” 가상머신과도 κ°™λ‹€.

    • κ·Έλž˜μ„œ Amazon이 EC2 μΈμŠ€ν„΄μŠ€λ₯Ό λ‹€μ–‘ν•œ μ†ŒλΉ„μžμ—κ²Œ μ œκ³΅ν•  수 있으며, κ°€μƒλ¨Έμ‹ μ˜ EC2 μΈμŠ€ν„΄μŠ€λŠ” 각자 λΆ„λ¦¬λ˜μ–΄μžˆλ‹€.

    • λ¦¬μ†ŒμŠ€λ₯Ό κ³΅μœ ν•˜μ§€ μ•ŠλŠ”λ‹€.

  2. 도컀

    • 도컀 μ»¨ν…Œμ΄λ„ˆμ˜ 경우 인프라와 EC2μΈμŠ€ν„΄μŠ€ 같은 호슀트OSκ°€ 있고 도컀 Daemon μœ„μ— λ§Žμ€ μ»¨ν…Œμ΄λ„ˆκ°€ μžˆλ‹€.
    • 도컀 Daemonμ—μ„œ κ°€λ³κ²Œ μ‹€ν–‰λ˜λŠ” μ»¨ν…Œμ΄λ„ˆλΌ 곡쑴할 수 있게 λœλ‹€.
    • λ„€νŠΈμ›Œν‚Ήμ΄λ‚˜ 데이터 등을 κ³΅μœ ν• μˆ˜λ„ μžˆλ‹€.
    • μ†Œμœ„ 말해, 가상머신보닀 덜 μ•ˆμ „ν•˜μ§€λ§Œ, ν•˜λ‚˜μ˜ μ„œλ²„μ— λ§Žμ€ μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹€ν–‰ν•  수 있기 λ•Œλ¬Έμ— λ„μ»€μ»¨ν…Œμ΄λ„ˆλ₯Ό 많이 μ‚¬μš©ν•œλ‹€.

05. Getting Started with Docker

도컀λ₯Ό μ‹œμž‘ν•΄λ³΄μž.

image-20221020014641443

  1. 도컀λ₯Ό μ‹œμž‘ν•˜λ €λ©΄ μš°μ„  Dockerfile 을 μž‘μ„±ν•΄μ•Ό ν•œλ‹€.
    • 도컀 μ»¨ν…Œμ΄λ„ˆλ₯Ό κ΅¬μ„±ν•˜λŠ” νŒŒμΌμ΄λ‹€.
  2. 베이슀 도컀 이미지에 λͺ‡ 가지 νŒŒμΌμ„ μΆ”κ°€ν•΄μ„œ κ΅¬μΆ•ν•˜λ©΄ 도컀 이미지가 λœλ‹€.
  3. 도컀 imageλŠ” ν‘Έμ‹œ(push)ν•΄μ„œ 도컀 λ ˆν¬μ§€ν† λ¦¬μ— μ €μž₯ν•  수 μžˆλ‹€. (DockerHub, AmazonECR)
  4. 도컀 λ ˆν¬μ§€ν† λ¦¬μ—μ„œ imageλ₯Ό pull λ°›μ•„μ„œ μ»¨ν…Œμ΄λ„ˆν™” μ‹œν‚¨λ‹€.

06. Docker Containers Management on AWS

AWSμ—μ„œ μ œκ³΅ν•˜λŠ” 도컀 μ»¨ν…Œμ΄λ„ˆ μ„œλΉ„μŠ€λ₯Ό μ•Œμ•„λ³΄μž.

image-20221020014925977

  1. Amazon ECS
    • 도컀 관리λ₯Ό μœ„ν•œ Amazon μ „μš© ν”Œλž«νΌ
    • λ‹€μŒ ν¬μŠ€νŒ…μ— μžμ„Ένžˆ μ•Œμ•„λ³΄λ„λ‘ ν•œλ‹€.
  2. Amazon EKS
    • μΏ λ²„λ„€ν‹°μŠ€ μ„œλΉ„μŠ€.
    • μΏ λ²„λ„€ν‹°μŠ€μ˜ κ΄€λ¦¬ν˜• λ²„μ „μœΌλ‘œ μ˜€ν”ˆμ†ŒμŠ€ ν”„λ‘œμ νŠΈμž…λ‹ˆλ‹€.
    • μΆ”ν›„ κ°„λ‹¨νžˆ μ‚΄νŽ΄λ³Ό μ˜ˆμ •
  3. AWS Fargate
    • Amazon의 Serverless μ»¨ν…Œμ΄λ„ˆ ν”Œλž«νΌ
    • ECS 와 EKS λ‘˜λ‹€ ν•¨κ»˜ μž‘λ™ν•  수 μžˆλ‹€.
    • μΆ”ν›„ μžμ„Ένžˆ ν¬μŠ€νŒ… μ˜ˆμ •
  4. Amazon ECR
    • 도컀 μ»¨ν…Œμ΄λ„ˆ 이미지λ₯Ό μ €μž₯ν•˜λŠ”λ° μ‚¬μš©

λŒ“κΈ€λ‚¨κΈ°κΈ°