iknowDev
Blog Driven Development
iknowDev ๐Ÿ˜
/
  • ์ž‘์„ฑ ๊ธ€ ๋ชฉ๋ก
  • Github
  • Category (30)
    • ๐Ÿ“• CS ์Šคํ„ฐ๋”” (22)
      • ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ (0)
      • Java, Spring (5)
      • ๋„์ปค, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค, ๋ฆฌ๋ˆ…์Šค (4)
      • ๋„คํŠธ์›Œํฌ (11)
      • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (1)
      • ๋””์ž์ธ ํŒจํ„ด (1)
      • ์ž๋ฃŒ ๊ตฌ์กฐ (0)
    • ๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋”” (4)
      • Java (3)
      • JavaScript (0)
      • Python3 (1)
    • ๐Ÿ’ป ํ† ์ด ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ๊ธฐ (2)
    • ๐Ÿš€ ๊ฒฝํ—˜ (2)
      • ์—๋Ÿฌ ๋Œ€์‘ (2)
      • ํšŒ๊ณ  (0)
      • ์ฆ๊ฑฐ์šด์ผ (0)

Popular

Tag

Was   
๋ฐฑ์ค€   
๊ณจ๋“œ   
ํŠธ๋žœ์žญ์…˜   
Netty   
์ฟ ๋ฒ„๋„คํ‹ฐ์Šค   
java   
side Project   
Spring   
์—๋Ÿฌ ๋Œ€์‘   

Comment


Designed By hELLO
iknowDev

Blog Driven Development

๐Ÿ“• CS ์Šคํ„ฐ๋””/๋„์ปค, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค, ๋ฆฌ๋ˆ…์Šค

[Docker] Docker ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ์˜ ์ดํ•ด (Volume, Mount)

2023. 2. 2. 21:18
๐Ÿ’ก  1. Docker ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ
	2. ๋งˆ์šดํŠธ ์˜ต์…˜
	3. ๋งˆ์šดํŠธ ์‚ฌ์šฉ ์ด์œ 
	4. volume ์‹คํ–‰ ์˜ˆ์ œ
	5. volume๊ณผ bind mount ์ฐจ์ด

๐Ÿ“Œ Docker ์ปจํ…Œ์ด๋„ˆ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ

๋‹ค์ˆ˜์˜ Docker ์ปจํ…Œ์ด๋„ˆ ์šด์˜ ์‹œ ์ปจํ…Œ์ด๋„ˆ ๊ฐ„์˜ ํŒŒ์ผ ๊ณต์œ ๊ฐ€ ํ•„์š”ํ•œ ์ƒํ™ฉ์ด ์ƒ๊ธด๋‹ค.

A ์ปจํ…Œ์ด๋„ˆ ๋กœ๊ทธํŒŒ์ผ์„ B ์ปจํ…Œ์ด๋„ˆ๋กœ ์ˆ˜์ง‘ํ•˜๋Š” ๊ฒฝ์šฐ 2๊ฐ€์ง€ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

  1. B๊ฐ€ A ์ปจํ…Œ์ด๋„ˆ ๋ณผ๋ฅจ์— ์ ‘๊ทผํ•ด ๋กœ๊ทธ ํŒŒ์ผ์„ ์ˆ˜์ง‘ํ•˜๋Š” ๋ฐฉ๋ฒ•
  2. ํ˜ธ์ŠคํŠธ OS์— ๊ณต์œ  ๋ณผ๋ฅจ์„ ์ƒ์„ฑ, ์ด ๊ณต๊ฐ„์— A ์„œ๋ฒ„ ๋กœ๊ทธ ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ณ  B๊ฐ€ ๋กœ๊ทธ ํŒŒ์ผ์„ ์ˆ˜์ง‘ํ•˜๋Š” ๋ฐฉ๋ฒ•

 

 

๐Ÿ“Œ ๋งˆ์šดํŠธ ์‚ฌ์šฉ ์ด์œ 

์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ ์‹œ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ™์ด ์‚ญ์ œ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

๊ทธ๋ž˜์„œ ๋ฐ์ดํ„ฐ์˜ ์˜์†์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋งˆ์šดํŠธํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค. ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ถ„๋ฆฌ ๊ด€๋ฆฌํ•ด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ง€์› ๋‹ค๊ฐ€ ๋‹ค์‹œ ์‹คํ–‰์‹œํ‚ฌ ๋•Œ ๋„์ปค ๋ณผ๋ฅจ๊ณผ ์—ฐ๊ฒฐํ•œ๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

๐Ÿ“Œ ๋งˆ์šดํŠธ ์˜ต์…˜

(*๋งˆ์šดํŠธ := ๋ฌผ๋ฆฌ์ ์ธ ์žฅ์น˜๋ฅผ ํŠน์ •ํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ ์œ„์น˜์— ์—ฐ๊ฒฐ์‹œ์ผœ ์ฃผ๋Š” ๊ณผ์ •)

  1. volume
  2. bind mount
  3. tmpfs

 

volume์€ Docker๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” Host File System์˜ ์ผ๋ถ€์— Data ์ €์žฅ (Linux: /var/lib/docker/volume/)

bind mount๋Š” Data๊ฐ€ Host System์˜ ์–ด๋””์—๋“ ์ง€ ์ €์žฅ

tmpfs mount๋Š” Host System์˜ Memory์—๋งŒ Data ์ €์žฅ

 

 

 

๐Ÿ“Œ volume ์‹คํ–‰ ์˜ˆ์ œ

volume์€ docker volume ๋ช…๋ น์„ ์‚ฌ์šฉํ•ด ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌํ•œ๋‹ค.

 

volume ์ƒ์„ฑ

docker volume create my_data_volume

 

volume ํ™•์ธ

docker volume ls

 

์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘ ๋ฐ volume ๋งˆ์šดํŠธ

"my_data_volume"์ด๋ผ๋Š” ๋ณผ๋ฅจ์„ ์ƒ์„ฑํ•˜๊ณ  busybox ์ด๋ฏธ์ง€์—์„œ "my_container"๋ผ๋Š” ์ด๋ฆ„์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค.

-v ์˜ต์…˜์€ ๋ณผ๋ฅจ์„ ์ปจํ…Œ์ด๋„ˆ์— ๋งˆ์šดํŠธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ, ์ด ๊ฒฝ์šฐ /app/data ๊ฒฝ๋กœ์— ๋งˆ์šดํŠธ๋œ๋‹ค.

docker run -d --name my_container -v my_data_volume:/app/data busybox sh

 

์ปจํ…Œ์ด๋„ˆ ๋‚ด ๋ช…๋ น ์‹คํ–‰ ๋ฐ ๋ฐ์ดํ„ฐ ํ•ธ๋“ค๋ง

docker exec my_container touch /app/data/test.txt

 

์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” volume ์ •๋ฆฌ

docker volume prune

 

 

โœ‹ volume์„ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ์ปจํ…Œ์ด๋„ˆ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ตœ์ ํ™”ํ•˜๊ณ , ๋ฐ์ดํ„ฐ ์ง€์†์„ฑ ํ–ฅ์ƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

 

๐Ÿ“Œ volume๊ณผ bind mount ์ฐจ์ด

volume์€ Docker์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๊ณ  Host System๊ณผ ๋ถ„๋ฆฌ๋œ๋‹ค.

bind mount๋Š” Docker Host ๋˜๋Š” Docker Container์˜ Non-Docker ํ”„๋กœ์„ธ์„œ๋“ค์ด ์–ธ์ œ๋“ ์ง€ ์ €์žฅ๋œ Data๋ฅผ ์ˆ˜์ • ๊ฐ€๋Šฅํ•˜๋‹ค.

 

๋จธ์‹  ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ณต์œ ๋Š” Volume Driver๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

์ •๋ฆฌ

  1. Docker๋Š” volume์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.
  2. volume์€ ์ปจํ…Œ์ด๋„ˆ์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ ์™ธ๋ถ€์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ ๊ณต๊ฐ„์ด๋‹ค.
  3. ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‚ญ์ œ๋˜์–ด๋„ ๋ฐ์ดํ„ฐ๋Š” ์œ ์ง€๋˜๊ณ , ์ปจํ…Œ์ด๋„ˆ ๊ฐ„์ด๋‚˜ ์ปจํ…Œ์ด๋„ˆ์™€ ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ ๊ฐ„์—๋„ ๊ณต์œ ๋  ์ˆ˜ ์žˆ๋‹ค.
  4. volume์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉด ์ปจํ…Œ์ด๋„ˆ ์ƒํƒœ์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๊ณ , ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ฑฐ๋‚˜ ์žฌ์ƒ์„ฑํ•  ๋•Œ๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์ง€๋œ๋‹ค.

 

Docker doc

    '๐Ÿ“• CS ์Šคํ„ฐ๋””/๋„์ปค, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค, ๋ฆฌ๋ˆ…์Šค' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • ๐Ÿง nohup ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ํ”„๋กœ๊ทธ๋žจ ๋Œ๋ฆฌ๊ธฐ &
    • [์ฟ ๋ฒ„๋„คํ‹ฐ์Šค #2] โš“์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์•„ํ‚คํ…์ฒ˜ (Control Plane/Node) ์•Œ์•„๋ณด๊ธฐ
    • [์ฟ ๋ฒ„๋„คํ‹ฐ์Šค #1] ๋„์ปค ์ปจํ…Œ์ด๋„ˆ, ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์˜ ์—ญํ• ์ด๋ž€?
    iknowDev
    iknowDev
    iknowDev ๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ SSAFY 8๊ธฐ Java

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”