Skip to content

Latest commit

Β 

History

History
87 lines (63 loc) Β· 4.03 KB

Volume_vs_Bind_Mount.md

File metadata and controls

87 lines (63 loc) Β· 4.03 KB

Volume vs Bind Mount

Volume

  • μ»¨ν…Œμ΄λ„ˆμ—μ„œ μ‚¬μš©λ˜κ±°λ‚˜ μƒμ„±λ˜λŠ” μ˜μ†μ„± 데이터λ₯Ό λ‹€λ£¨λŠ” 기술
  • λ°μ΄ν„°λŠ” 도컀 엔진에 μ˜ν•΄ 관리됨 (λ„μ»€μ˜ 관리 μ˜μ—­)
  • μ‚¬μš© 방식은 Anonymous Volumeκ³Ό Named Volume으둜 λ‚˜λ‰¨
    • Anonymous Volume: μš°λ¦¬κ°€ 이름을 직접 μ§€μ •ν•˜μ§€ μ•ŠμœΌλ©°, 이름이 μžλ™μœΌλ‘œ 뢀여됨
    • Named Volume: μš°λ¦¬κ°€ 직접 이름을 지정

Anonymous Volume μ‚¬μš©

docker run ...
	-v {μ»¨ν…Œμ΄λ„ˆ λ‚΄λΆ€ 경둜}
  • νŠΉμ • μ»¨ν…Œμ΄λ„ˆ λ‚΄λΆ€ 경둜의 데이터λ₯Ό μ˜μ†ν™”ν•¨
  • --rm μ˜΅μ…˜κ³Ό ν•¨κ»˜ μ‚¬μš©ν•˜λŠ” 경우 μ»¨ν…Œμ΄λ„ˆλ₯Ό μ’…λ£Œν•  λ•Œ 읡λͺ… λ³Όλ₯¨λ„ ν•¨κ»˜ 제거됨

Named Volume 생성 및 μ‚¬μš©

docker run ...
	-v {λ³Όλ₯¨λͺ…}:{μ»¨ν…Œμ΄λ„ˆ λ‚΄λΆ€ 경둜}
  • 읡λͺ… λ³Όλ₯¨κ³Όμ˜ μ°¨μ΄λŠ”, λ³Όλ₯¨λͺ…을 직접 μ§€μ •ν•΄μ€€λ‹€λŠ” 것
  • --rm μ˜΅μ…˜κ³Ό ν•¨κ»˜ μ‚¬μš©ν•΄λ„ λ³Όλ₯¨μ΄ μ œκ±°λ˜μ§€ μ•ŠμŒ

λ³Όλ₯¨ λͺ©λ‘ 확인

docker volume ls
  • 읡λͺ… λ³Όλ₯¨λ„ μ œκ±°λ˜μ§€ μ•Šμ•˜λ‹€λ©΄ μ—¬κΈ°μ„œ 확인 κ°€λŠ₯
    • ν•˜μ§€λ§Œ 읡λͺ… λ³Όλ₯¨μ€ 이 λ³Όλ₯¨μ— μ–΄λ–€ 데이터가 λ‹΄κΈ°λŠ”μ§€ μ‹λ³„ν•˜κΈ° μ–΄λ €μš°λ―€λ‘œ μž¬μ‚¬μš©μ΄ 어렀움
    • κ·Έλž˜μ„œ 일반적으둜 μ»¨ν…Œμ΄λ„ˆμ™€ 생λͺ…μ£ΌκΈ°λ₯Ό 같이 ν•˜λ„λ‘ μ‚¬μš©ν•˜λŠ” 편이며, 그렇지 μ•Šμ•„μ•Ό ν•˜λŠ” 경우(μ—¬λŸ¬ μ»¨ν…Œμ΄λ„ˆμ—μ„œ μž¬μ‚¬μš©ν•΄μ•Όν•˜λŠ” 경우) λͺ…λͺ… λ³Όλ₯¨μ„ μ‚¬μš©ν•˜λŠ” 것이 μ’‹μŒ
  • λ³Όλ₯¨μ€ μ—¬λŸ¬ μ»¨ν…Œμ΄λ„ˆμ— μ—°κ²° κ°€λŠ₯
    • λ³Όλ₯¨μ˜ λͺ©μ  쀑 ν•˜λ‚˜. μ»¨ν…Œμ΄λ„ˆ κ°„ 데이터 곡유λ₯Ό μ‰½κ²Œ ν•  수 μžˆλ„λ‘ 함

Bind Mount

  • 호슀트 λ‚΄μ˜ 파일/디렉토리가 μ»¨ν…Œμ΄λ„ˆμ˜ 파일/디렉토리에 λ§ˆμš΄νŠΈλ˜λŠ” 것
  • λ°μ΄ν„°λŠ” 호슀트 기기의 νŒŒμΌμ‹œμŠ€ν…œμ— μ˜ν•΄ 관리됨

-v λ˜λŠ” --volume μ˜΅μ…˜μ„ ν†΅ν•œ μ‚¬μš©

docker run ...
	-v {호슀트 파일/디렉토리 경둜}:{μ»¨ν…Œμ΄λ„ˆ 파일/디렉토리 경둜}
  • λ§ˆμš΄νŠΈλŠ” λ³Όλ₯¨κ³Ό λ™μΌν•œ μ˜΅μ…˜κ°’μœΌλ‘œλ„ μ‚¬μš©ν•  수 있음

-m λ˜λŠ” --mount μ˜΅μ…˜μ„ ν†΅ν•œ μ‚¬μš©

docker run ...
	-m type=bind,source={호슀트 파일/디렉토리 경둜},target={μ»¨ν…Œμ΄λ„ˆ 파일/디렉토리 경둜}
  • key=value ν˜•μ‹μœΌλ‘œ μ˜΅μ…˜μ„ 지정할 수 있으며 컴마(,)둜 ꡬ뢄
  • 호슀트 파일/디렉토리 κ²½λ‘œκ°€ μ—†λŠ” 경우 -vλŠ” μƒμ„±ν•˜κ³ , -m은 μ—λŸ¬λ₯Ό λ°œμƒμ‹œν‚΄

Volume vs Bind Mount

Volume vs Bind Mount

  • 두 가지 λͺ¨λ‘ 데이터 μ˜μ†ν™”λ₯Ό μœ„ν•΄ μ‚¬μš©λ˜λŠ” 기법
    • 즉, μ»¨ν…Œμ΄λ„ˆκ°€ μ’…λ£Œλ˜μ–΄λ„ 데이터가 μœ μ‹€λ˜μ§€ μ•Šλ„λ‘ ν•˜λŠ” 것이 λͺ©μ 
  • λ¬Όλ¦¬μ μœΌλ‘œλŠ” λ‘˜ λ‹€ 호슀트 기기의 νŒŒμΌμ‹œμŠ€ν…œμ— μ‘΄μž¬ν•˜λŠ” κ²ƒμ΄λ‚˜, λ…Όλ¦¬μ μœΌλ‘œ λ³Όλ₯¨μ€ β€˜λ„μ»€κ°€ κ΄€λ¦¬ν•˜λŠ” 별도 μ˜μ—­β€™μ— 쑴재
    • μ΄λ‘œλΆ€ν„° λ°œμƒν•˜λŠ” κ°€μž₯ 큰 차이점은, λ³Όλ₯¨ μ˜μ—­μ€ Docker CLIλ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€λŠ” 것
      • λ³Όλ₯¨μ„ μƒμ„±ν•˜κ±°λ‚˜, μ‚­μ œν•˜κ±°λ‚˜, μ‘°νšŒν•  수 있음
    • λ§ˆμš΄νŠΈλŠ” 호슀트 λ‚΄ 경둜λ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμ΄λ―€λ‘œ λ„μ»€μ˜ 관리λ₯Ό 받을 수 μ—†μŒ
  • 도컀가 κ΄€λ¦¬ν•˜λŠ” 별도 μ˜μ—­μ€ λ‚΄ λ°μ΄ν„°λŠ” ν˜ΈμŠ€νŠΈμ—μ„œ λ³΄κΈ°μ—λŠ” 어렀움
    • λ”°λΌμ„œ, λ§Œμ•½ μ»¨ν…Œμ΄λ„ˆκ°€ μ•„λ‹Œ ν˜ΈμŠ€νŠΈμ—μ„œλ„ μ˜μ† 데이터λ₯Ό μ½κ±°λ‚˜ μˆ˜μ •ν•˜κ³ μž ν•˜λŠ” 경우 마운트 방식을 μ΄μš©ν•΄μ•Ό 함
      • 도컀 μ»¨ν…Œμ΄λ„ˆκ°€ μ•„λ‹Œ λ˜λ‹€λ₯Έ ν”„λ‘œκ·Έλž¨μœΌλ‘œ 이 데이터λ₯Ό μ œμ–΄ν•˜κ³ μž ν•˜λŠ” 경우 λ“±
      • λŒ€ν‘œμ  μ˜ˆμ‹œλ‘œ DB 데이터λ₯Ό λ§ˆμš΄νŠΈν•˜μ—¬ μ˜μ†ν™”ν•˜κ³  별도 DB 관리 도ꡬλ₯Ό 톡해 데이터λ₯Ό ν™•μΈν•˜κ³ μž ν•˜λŠ” κ²½μš°κ°€ 있음

μš”μ•½

  • λ³Όλ₯¨μ€ 데이터λ₯Ό λ„μ»€μ˜ 관리 μ˜μ—­μ— μ˜μ†ν™”ν•˜λŠ” 것
  • λ³Όλ₯¨μ„ μ΄μš©ν•˜λ©΄ Docker CLIλ₯Ό μ΄μš©ν•˜λŠ” λ“± λ„μ»€μ˜ 관리λ₯Ό 받을 수 μžˆλ‹€λŠ” 이점이 쑴재
  • λ§ˆμš΄νŠΈλŠ” 데이터λ₯Ό 호슀트의 관리 μ˜μ—­μ— μ˜μ†ν™”ν•˜λŠ” 것
  • 도컀 μ»¨ν…Œμ΄λ„ˆ μ΄μ™Έμ˜ λ‹€λ₯Έ λ„κ΅¬μ—μ„œλ„ μ˜μ†ν™”λœ 데이터에 μ ‘κ·Όν•˜κ³ μž ν•œλ‹€λ©΄ 마운트 방식을 이용