Post

๐Ÿ‹ Docker ์ž…๋ฌธ โ…ข - File๊ณผ Volume

๐Ÿ‹ Docker ์ž…๋ฌธ โ…ข - File๊ณผ Volume

๐Ÿ“˜ ใ€Ž๊ทธ๋ฆผ๊ณผ ์‹ค์Šต์œผ๋กœ ๋ฐฐ์šฐ๋Š” Docker & ์ฟ ๋ฒ„๋„คํ‹ฐ์Šคใ€๋ฅผ ์ฝ๊ณ  ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

Container์™€ ํ˜ธ์ŠคํŠธ ๊ฐ„ ํŒŒ์ผ ๋ณต์‚ฌ

1
2
3
4
# ์ปจํ…Œ์ด๋„ˆ โ†’ ํ˜ธ์ŠคํŠธ
docker cp ์ปจํ…Œ์ด๋„ˆ_์ด๋ฆ„:์ปจํ…Œ์ด๋„ˆ_๊ฒฝ๋กœ ํ˜ธ์ŠคํŠธ_๊ฒฝ๋กœ 
# ํ˜ธ์ŠคํŠธ โ†’ ์ปจํ…Œ์ด๋„ˆ
docker cp ํ˜ธ์ŠคํŠธ_๊ฒฝ๋กœ ์ปจํ…Œ์ด๋„ˆ_์ด๋ฆ„:์ปจํ…Œ์ด๋„ˆ_๊ฒฝ๋กœ
  • ํŒŒ์ผ ๋ณต์‚ฌ๋Š” Container์—์„œ ํ˜ธ์ŠคํŠธ๋กœ, ํ˜ธ์ŠคํŠธ์—์„œ Container๋กœ ์–‘๋ฐฉํ–ฅ ๋ชจ๋‘ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • mv๋กœ ํŒŒ์ผ๋ช…์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ rm๋กœ ํŒŒ์ผ์„ ์‚ญ์ œํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

Volume๊ณผ Mount

  • Volume์€ ์Šคํ† ๋ฆฌ์ง€์˜ ํ•œ ์˜์—ญ์„ ๋ถ„ํ• ํ•œ ๊ฒƒ์ด๋‹ค.
  • Mount๋Š” ๋Œ€์ƒ์„ ์—ฐ๊ฒฐํ•ด ์šด์˜์ฒด์ œ์˜ ๊ด€๋ฆฌ ํ•˜์— ๋‘๋Š” ๊ฒƒ์ด๋‹ค.
  • ์‹ค์ œ๋กœ Container๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์Šคํ† ๋ฆฌ์ง€ ์˜์—ญ์„ Mountํ•ด์•ผ ํ•œ๋‹ค.
  • ์™œ๋ƒํ•˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์ด ์Šคํ† ๋ฆฌ์ง€์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— Mount๋ฅผ ํ•˜์ง€ ์•Š์œผ๋ฉด Container๋ฅผ ์‚ญ์ œํ•  ๋•Œ ๊ฐ™์ด ์‚ญ์ œ๋˜์–ด ๋ฒ„๋ฆฐ๋‹ค.
  • Container๋Š” ์ƒ์„ฑ ๋ฐ ํ๊ธฐ๊ฐ€ ๋งค์šฐ ๋นˆ๋ฒˆํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งค๋ฒˆ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ฎ๊ธฐ๋Š” ๋Œ€์‹  Container ์™ธ๋ถ€์— ๋‘” ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ์ด๋ฅผ ๋ฐ์ดํ„ฐ ํผ์‹œ์Šคํ„ด์‹œ๋ผ๊ณ  ํ•œ๋‹ค.
  • Mount๋Š” run ์ปค๋งจ๋“œ์˜ ์˜ต์…˜ ํ˜•ํƒœ๋กœ ์ง€์ •ํ•œ๋‹ค.

โœ… Volume Mount

1
docker run -v ๋ณผ๋ฅจ_์ด๋ฆ„:์ปจํ…Œ์ด๋„ˆ_๋งˆ์šดํŠธ_๊ฒฝ๋กœ
  • Docker ์—”์ง„์ด ๊ด€๋ฆฌํ•˜๋Š” ์˜์—ญ ๋‚ด์— ๋งŒ๋“ค์–ด์ง„ Volume์„ Container์— ๋””์Šคํฌ ํ˜•ํƒœ๋กœ Mount ํ•œ๋‹ค.
  • ์ž์ฃผ ์“ฐ์ง€๋Š” ์•Š์ง€๋งŒ ์ง€์šฐ๋ฉด ์•ˆ ๋˜๋Š” ํŒŒ์ผ์„ Mount ํ•œ๋‹ค.
  • Docker Container๋ฅผ ๊ฒฝ์œ ํ•˜์ง€ ์•Š๊ณ  ์ง์ ‘ Volume์— ์ ‘๊ทผํ•  ๋ฐฉ๋ฒ•์ด ์—†๋‹ค.

โœ… Bind Mount

1
docker run -v ์Šคํ† ๋ฆฌ์ง€_์‹ค์ œ_๊ฒฝ๋กœ:์ปจํ…Œ์ด๋„ˆ_๋งˆ์šดํŠธ_๊ฒฝ๋กœ
  • Docker๊ฐ€ ์„ค์น˜๋œ ์ปดํ“จํ„ฐ์˜ ๋ฌธ์„œ ํด๋” ๋˜๋Š” ๋ฐ”ํƒ•ํ™”๋ฉด ํด๋” ๋“ฑ Docker ์—”์ง„์—์„œ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๋Š” ์˜์—ญ์˜ ๊ธฐ์กด ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ Container์— Mount ํ•œ๋‹ค.
  • ํด๋” ์†์— ํŒŒ์ผ์„ ์ง์ ‘ ๋‘๊ฑฐ๋‚˜ ์—ด์–ด๋ณผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ํŒŒ์ผ์„ ๋‘๋Š” ๋ฐ ์‚ฌ์šฉํ•œ๋‹ค.

Volume ์ปค๋งจ๋“œ

1
2
3
4
5
6
# `Volume` ์ƒ์„ฑ
docker volume create ๋ณผ๋ฅจ_์ด๋ฆ„
# `Volume` ์‚ญ์ œ
docker volume rm ๋ณผ๋ฅจ_์ด๋ฆ„
# `Volume` ์ƒ์„ธ์ •๋ณด ํ™•์ธ
docker volume inspect ๋ณผ๋ฅจ_์ด๋ฆ„

์‹ฌํ™” - Volume ๋ฐฑ์—…

1
2
docker run --rm -v ๋ณผ๋ฅจ_์ด๋ฆ„:/source -v ๋ฐฑ์—…_์ €์žฅ_ํด๋”๋ช…:/target ์ปจํ…Œ์ด๋„ˆ_์ด๋ฆ„
tar cvzf /๊ฒฝ๋กœ/ํŒŒ์ผ๋ช….tar.gz -C /source .
  • tar -Cย ย A B๋Š”ย ย A๋กœ ์ด๋™ํ•˜์—ฌ B์˜ ํŒŒ์ผ์„ ์••์ถ•ํ•˜๋Š” ์ปค๋งจ๋“œ๋‹ค.

์‹ฌํ™” - ๋ฐฑ์—…์˜ ๋ณต์›

1
2
docker run --rm -v ๋ณผ๋ฅจ_์ด๋ฆ„:/source -v ๋ฐฑ์—…_์ €์žฅ_ํด๋”๋ช…:/target ์ปจํ…Œ์ด๋„ˆ_์ด๋ฆ„ 
tar xvzf /๊ฒฝ๋กœ/ํŒŒ์ผ๋ช….tar.gz -C /source
This post is licensed under CC BY 4.0 by the author.