[Docker] μ»¨ν…Œμ΄λ„ˆ 기술의 이해

μ»¨ν…Œμ΄λ„ˆ κΈ°μˆ μ€ λ¬΄μ—‡μΌκΉŒ?

  • μ»¨ν…Œμ΄λ„ˆλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ–Έμ œλ“  μ‹€ν–‰ κ°€λŠ₯ν•˜λ„λ‘ ν•„μš”ν•œ λͺ¨λ“  μš”μ†Œλ₯Ό ν•˜λ‚˜μ˜ λŸ°νƒ€μž„ ν™˜κ²½μœΌλ‘œ νŒ¨ν‚€μ§•ν•œ 논리적 곡간을 λ§ν•œλ‹€. 
  • 도컀에선 이런 νŒ¨ν‚€μ§• κΈ°μˆ μ„ Docker file buildλ₯Ό 톡해 κ΅¬ν˜„ν•œλ‹€.
  • 즉, μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό 쒅속 ν•­λͺ©μ„ ν•˜λ‚˜λ‘œ λ¬Άμ–΄, μ‹€ν–‰ν•˜κ²Œ ν•΄μ£ΌλŠ” 운영 μ‹œμŠ€ν…œμ„ κ°€μƒν™”ν•œ κ²½λŸ‰μ˜ 격리된 ν”„λ‘œμ„ΈμŠ€ 라고 λ³Ό 수 μžˆλ‹€.

이λ₯Ό 톡해 얻을 수 μžˆλŠ” κ°€μž₯ 큰 이점은 개발 κ·Έ μžμ²΄μ— 집쀑할 수 μžˆλ‹€.

 

 

 

μ»¨ν…Œμ΄λ„ˆ νŠΉμ§•

  • μ»¨ν…Œμ΄λ„ˆλŠ” μ΅œμ†Œν•œμ˜ Imageλ₯Ό 톡해 μ‹€ν–‰λ˜λ―€λ‘œ κ²½λŸ‰μ΄λ‹€.
  • 일반 μ„œλ²„ ν™˜κ²½μ—μ„œμ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ‹€ν–‰κ³Ό 달리 μ–Έμ œλ“  ν”„λ‘œμ„ΈμŠ€ μˆ˜μ€€μ˜ μ†λ„λ‘œ λΉ λ₯΄κ²Œ μ‹€ν–‰ κ°€λŠ₯ν•˜λ‹€.
  • ν•œλ²ˆμ— μ—¬λŸ¬κ°œμ˜ μ»¨ν…Œμ΄λ„ˆλ₯Ό λ™μ‹œμ— μ‹€ν–‰ κ°€λŠ₯ν•˜λ‹€.
  • 개인 ν™˜κ²½μ΄λ˜, ν΄λΌμš°λ“œ ν™˜κ²½μ΄λ˜ μ–΄λ–€ OS던 도컀 ν”Œλž«νΌλ§Œ κΉ”λ €μžˆμœΌλ©΄ 이식성이 λ›°μ–΄λ‚˜λ‹€.

 

 

μ»¨ν…Œμ΄λ„ˆμ˜ μ’…λ₯˜

μ»¨ν…Œμ΄λ„ˆλŠ” μ‹œμŠ€ν…œ μ»¨ν…Œμ΄λ„ˆ, μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ»¨ν…Œμ΄λ„ˆ, λΌμš°ν„° μ»¨ν…Œμ΄λ„ˆλ‘œ λ‚˜λˆŒ 수 μžˆλ‹€.

 

1. μ‹œμŠ€ν…œ(or OS) μ»¨ν…Œμ΄λ„ˆ

  • 호슀트OS μœ„μ— Ubuntu와 같은 배포판 λ¦¬λˆ…μŠ€ Imageλ₯Ό 톡해 λ°°ν¬λ˜λŠ” μ»¨ν…Œμ΄λ„ˆμ΄λ‹€.
  • λ§Œλ“€μ–΄μ§„ μ»¨ν…Œμ΄λ„ˆ 내뢀에 λ‹€μ–‘ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 및 라이브러리 도ꡬλ₯Ό μ„€μΉ˜ν•˜κ³  μ‹€ν–‰ κ°€λŠ₯ν•˜λ‹€.

 

2. μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ»¨ν…Œμ΄λ„ˆ

  • 단일 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 싀행을 μœ„ν•΄ ν•΄λ‹Ή μ„œλΉ„μŠ€λ₯Ό νŒ¨ν‚€μ§•ν•˜κ³  μ‹€ν–‰ν•˜λ„λ‘ μ„€κ³„λœ μ»¨ν…Œμ΄λ„ˆ
  • 3-tier μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό 같은 경우 각 tierλ₯Ό κ°œλ³„ μ»¨ν…Œμ΄λ„ˆλ‘œ μ‹€ν–‰ν•˜μ—¬ μ—°κ²°ν•œλ‹€.

  • μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό μ‹œμŠ€ν…œ μ»¨ν…Œμ΄λ„ˆμ˜ 차이점엔 μ»¨ν…Œμ΄λ„ˆ λ‚΄λΆ€μ˜ 주인이 λˆ„κ΅°μ§€ 이닀.
  • μ‹œμŠ€ν…œ μ»¨ν…Œμ΄λ„ˆ 같은 경우 Host OS 의 PID 1번이 λ‚΄λΆ€ μ»¨ν…Œμ΄λ„ˆμ˜ PID 1번과 κ°™λ‹€
  • ν•˜μ§€λ§Œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ»¨ν…Œμ΄λ„ˆλŠ” λ‹€λ₯΄λ‹€. λ‚΄λΆ€ μ»¨ν…Œμ΄λ„ˆμ˜ 1번 PIDλ₯Ό κ°–λŠ” μ£Όμ²΄λŠ” ν•΄λ‹Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 본인듀이닀.