DOCKER

[DOCKER] Docker Volume - 데이터 μ˜μ†μ„± 관리λ₯Ό μœ„ν•œ 도컀 λ³Όλ₯¨

sum_mit45 2024. 10. 16. 16:37
728x90
λ°˜μ‘ν˜•

🧐 μ»¨ν…Œμ΄λ„ˆμ˜ λ°μ΄ν„°λŠ” 어디에 μ €μž₯될까?

  • μ»¨ν…Œμ΄λ„ˆ 기반의 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ΅¬μΆ•ν•˜λ‹€ 보면, "λ°μ΄ν„°λŠ” 어디에 μ €μž₯ν•˜μ§€?"λΌλŠ” 질문이 λ– μ˜€λ₯Έλ‹€. Docker μ»¨ν…Œμ΄λ„ˆλŠ” 가볍고, λΉ λ₯΄κ²Œ μƒμ„±λ˜κ³  μ‚­μ œλœλ‹€. 그럼 κ·Έ μ•ˆμ˜ μƒμ„±λœ λ°μ΄ν„°λŠ” μ–΄λ–»κ²Œ 영ꡬ적으둜 보쑴할 수 μžˆμ„κΉŒ? 
  • λ°μ΄ν„°λ² μ΄μŠ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ„μ»€λ‘œ μ‹€ν–‰ν•  λ•Œ, 데이터가 사라지지 μ•Šλ„λ‘ λ³΄μ‘΄ν•˜λ €λ©΄ μ–΄λ–»κ²Œ ν•΄μ•Όν• κΉŒ?
  • 도컀 μ»¨ν…Œμ΄λ„ˆλŠ” 본질적으둜 νœ˜λ°œμ„± 데이터 μ €μž₯ 방식을 λ”°λ₯΄κΈ° λ•Œλ¬Έμ—, 데이터λ₯Ό 영ꡬ적으둜 μ €μž₯ν•˜κ±°λ‚˜ μ»¨ν…Œμ΄λ„ˆ 간에 κ³΅μœ ν•΄μ•Ό ν•  λ•ŒλŠ” 도컀 λ³Όλ₯¨μ„ μ‚¬μš©ν•˜λŠ” 것이 μ’‹λ‹€.

도컀 λ³Όλ₯¨μ΄ ν•„μš”ν•œ 이유

도컀 μ»¨ν…Œμ΄λ„ˆλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰ν•  수 μžˆλŠ” κ°€λ²Όμš΄ ν”„λ‘œμ„ΈμŠ€λ‘œ, ν•„μš”ν•œ 경우 데이터λ₯Ό λ©”λͺ¨λ¦¬λ‚˜ 파일 μ‹œμŠ€ν…œμ— μ €μž₯ν•  수 μžˆλ‹€. κ·ΈλŸ¬λ‚˜ 도컀 μ»¨ν…Œμ΄λ„ˆλŠ” νœ˜λ°œμ„± νŠΉμ„±μ„ 가지며, μ‚­μ œλ˜λ©΄ κ·Έ μ•ˆμ— 있던 λͺ¨λ“  데이터도 ν•¨κ»˜ 사라진닀. λ”°λΌμ„œ 데이터 μ˜μ†μ„±μ„ μœ μ§€ν•΄μ•Ό ν•˜λŠ” 경우 λ¬Έμ œκ°€ λ°œμƒν•œλ‹€.

  • μ»¨ν…Œμ΄λ„ˆλŠ” ν”„λ‘œμ„ΈμŠ€: 도컀 μ»¨ν…Œμ΄λ„ˆλŠ” ν”„λ‘œμ„ΈμŠ€μ΄κΈ° λ•Œλ¬Έμ— λ©”λͺ¨λ¦¬μ— 데이터λ₯Ό μ €μž₯ν•˜κ±°λ‚˜ 파일 μ‹œμŠ€ν…œμ— 기둝할 수 μžˆμ§€λ§Œ, λ°μ΄ν„°λŠ” μ»¨ν…Œμ΄λ„ˆμ˜ 수λͺ…κ³Ό λ°€μ ‘ν•˜κ²Œ μ—°κ²°λ˜μ–΄ μžˆλ‹€.
  • νœ˜λ°œμ„± 데이터: μ»¨ν…Œμ΄λ„ˆκ°€ μ‚­μ œλ˜λ©΄ ν•΄λ‹Ή μ»¨ν…Œμ΄λ„ˆκ°€ μ†Œμœ ν•˜κ³  있던 λͺ¨λ“  데이터도 μ‚­μ œλœλ‹€.
  • 데이터 μ˜μ†μ„± λΆ€μ‘±: μ»¨ν…Œμ΄λ„ˆ μžμ²΄μ μœΌλ‘œλŠ” μ˜μ†μ„±μ„ μ œκ³΅ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ—, μ»¨ν…Œμ΄λ„ˆκ°€ μ‚­μ œλ˜λ”λΌλ„ 데이터λ₯Ό μœ μ§€ν•˜λ €λ©΄ λ³„λ„μ˜ μ €μž₯μ†Œκ°€ ν•„μš”ν•˜λ‹€.

❗️데이터λ₯Ό 영ꡬ적으둜 λ³΄μ‘΄ν•˜κ³ , ν•„μš”μ‹œ λ‹€λ₯Έ μ»¨ν…Œμ΄λ„ˆμ—μ„œλ„ μ ‘κ·Όν•  수 μžˆλ„λ‘ 도컀 λ³Όλ₯¨μ„ μ‚¬μš©ν•œλ‹€.❗️

λ°μ΄ν„°μ˜ 영ꡬ μ €μž₯κ³Ό μ»¨ν…Œμ΄λ„ˆ κ°„ 곡유λ₯Ό λ„μ™€μ£ΌλŠ” 방식

1) Bind Mount

- 도컀 μ»¨ν…Œμ΄λ„ˆμ˜ 파일 μ‹œμŠ€ν…œμ„ 호슀트 μ»΄ν“¨ν„°μ˜ νŠΉμ • 디렉터리와 직접 μ—°κ²°ν•˜λŠ” 방식

- 호슀트 μ»΄ν“¨ν„°μ˜ 파일 μ‹œμŠ€ν…œκ³Ό μ»¨ν…Œμ΄λ„ˆκ°€ μ—°κ²°λ˜μ–΄ μ‹€μ‹œκ°„μœΌλ‘œ νŒŒμΌμ„ κ³΅μœ ν•œλ‹€.

- 데이터가 호슀트 컴퓨터에 μ €μž₯λ˜λ―€λ‘œ, 도컀 엔진을 μ‚¬μš©ν•  ν•„μš” 없이 λ°”λ‘œ 데이터에 μ ‘κ·Όν•  수 μžˆλ‹€.

2) Volume

- 도컀가 자체적으둜 κ΄€λ¦¬ν•˜λŠ” 파일 μ‹œμŠ€ν…œμ— 데이터λ₯Ό μ €μž₯ν•˜λŠ” 방식

- 도컀 엔진에 μ˜ν•΄ κ΄€λ¦¬λ˜λ―€λ‘œ μ‚¬μš©μžλŠ” 파일 경둜λ₯Ό λͺ…μ‹œν•  ν•„μš”κ°€ μ—†μœΌλ©°, λ„μ»€λŠ” 이λ₯Ό λ°±κ·ΈλΌμš΄λ“œμ—μ„œ μ²˜λ¦¬ν•œλ‹€.

- 이 방식은 λ‹€μˆ˜μ˜ μ»¨ν…Œμ΄λ„ˆ 간에 데이터λ₯Ό κ³΅μœ ν•˜κ±°λ‚˜, 호슀트 파일 μ‹œμŠ€ν…œκ³Όμ˜ 직접적인 연결을 μ›μΉ˜ μ•Šμ„ λ•Œ μœ μš©ν•˜λ‹€.

3) Tmpfs Mount

- 데이터λ₯Ό λ©”λͺ¨λ¦¬μ—λ§Œ μΌμ‹œμ μœΌλ‘œ μ €μž₯ν•˜λŠ” 방식

- 데이터λ₯Ό 영ꡬ적으둜 λ³΄μ‘΄ν•˜μ§€ μ•Šμ§€λ§Œ, λ””μŠ€ν¬ I/O μ„±λŠ₯을 μ΅œμ ν™”ν•΄μ•Ό ν•˜λŠ” 경우 μœ μš©ν•˜λ‹€.

- μ‹œμŠ€ν…œ λ©”λͺ¨λ¦¬λ₯Ό μ‚¬μš©ν•΄μ„œ 데이터λ₯Ό λΉ λ₯΄κ²Œ μ²˜λ¦¬ν•  수 있으며, λ―Όκ°ν•œ 데이터λ₯Ό λ‹€λ£° λ•Œ λ©”λͺ¨λ¦¬λ§Œμ„ μ‚¬μš©ν•œλ‹€.

728x90
λ°˜μ‘ν˜•