[๐Ÿ‹Docker] ๋„์ปค ๋ณผ๋ฅจ (Docker Volume)

vincaยท2023๋…„ 12์›” 11์ผ
0

๋„์ปค ๋ณผ๋ฅจ

๋„์ปค ๋ณผ๋ฅจ ์ƒ์„ฑ

docker volume create --name=vol1

์‹ค์ œ ๋ฌผ๋ฆฌ์ ์ธ ์ €์žฅ์†Œ๋ฅผ ์“ฐ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€๋กœ ํ•ด๋‹น ๋ณผ๋ฅจ์„ ๋งˆ์šดํŠธํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.

๐Ÿฅ๋งˆ์šดํŠธ๋ž€?
ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ํŠน์ • ์œ„์น˜๋ฅผ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ(์ปจํ…Œ์ด๋„ˆ)์˜ ๋‚ด๋ถ€๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•
๋‹จ, ์ด๋ฏธ ๋™์ž‘์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ์˜ ๊ฒฝ์šฐ ์ƒˆ๋กœ์šด ๋ณผ๋ฅจ์˜ ๊ฒฝ๋กœ๋ฅผ ๋งˆ์šดํŠธ ํ•˜์ง€ ๋ชปํ•œ๋‹ค. ๋”ฐ๋ผ์„œ, ์ค‘๋‹จ ํ›„ ์ƒˆ๋กญ๊ฒŒ ๋งˆ์šดํŠธ ํ•ด์•ผํ•œ๋‹ค.

๋ณผ๋ฅจ์˜ ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•

์ปจํ…Œ์ด๋„ˆ์—์„œ volume์„ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ์‹์€ ๋‘๊ฐ€์ง€๋กœ ๋‚˜๋‰˜๊ฒŒ ๋œ๋‹ค.
1. ๋ณผ๋ฅจ(volume) ์„ ํ†ตํ•ด ์ปจํ…Œ์ด๋„ˆ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ๋ฒ•
2. ๋ฐ”์ธ๋“œ ๋งˆ์šดํŠธ(Bind Mount) ๋ฅผ ์ด์šฉํ•ด ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ์˜ ํŠน์ • ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ปจํ…Œ์ด๋„ˆ์—
๋งˆ์šดํŠธ ํ•˜๋Š” ๋ฐฉ๋ฒ•

๋ณผ๋ฅจ ์ƒ์„ฑ

docker volume create --name=vol1

๋ณผ๋ฅจ ํ™•์ธ

docker volume ls

๋ณผ๋ฅจ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰

docker run -it --name=ubuntu -v vol1:/vol1 ubuntu:latest /bin/bash

ํ˜ธ์ŠคํŠธ์˜ vol1 ๋ณผ๋ฅจ์„ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ /vol1 ๊ฒฝ๋กœ์— ๋งˆ์šดํŠธํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ˜ธ์ŠคํŠธ์˜ vol1 ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ /vol1 ๊ฒฝ๋กœ์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ.

๊ฐ™์€ ๋ณผ๋ฅจ์— ๋‘๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ ‘์†

2. ๋ฐ”์ธ๋“œ ๋งˆ์šดํŠธ(Bind Mount)

ํ˜ธ์ŠคํŠธ ๋””๋ ‰ํ† ๋ฆฌ์™€ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ฐ”์ธ๋“œํ•œ๋‹ค.

๋กœ์ปฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์‚ฌ์ด์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

์ด๋Š” ํ˜ธ์ŠคํŠธ์— ์žˆ๋Š” ํด๋”์— ๊ณต์œ ๋ฅผ ํ•ด์„œ ๋“ค์–ด๊ฐ€๋Š” ํ˜•ํƒœ์ด๋‹ค.

/ ๊ฒฝ๋กœ๋ฅผ ์“ธ ๋•Œ๋Š” ์Šฌ๋ž˜์‰ฌ๋กœ ํ•ด์ค˜์•ผ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

docker run -it --name=ubuntu_mount2 -v C:/Users/user/docker_study/my_dir:/dir1 ubuntu:latest /bin/bash

(์˜ˆ์™ธ) tmpfs Mounts

tmpfs๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์„ฑ

์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ๋ณต์ž‘๋ณต์ž‘

# tmpfs๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰
docker run -d --name my_container --mount type=tmpfs,destination=/app/data my_image

dockerfile ๋ณผ๋ฅจ ์‚ฌ์šฉ

๊ธฐ์กด ๋ณผ๋ฅจ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ,์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  external: true ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด์„œ ์ฃผ๋ฉด๋œ๋‹ค.

๋„์ปค ํŒŒ์ผ์—์„œ์˜ ๋ณผ๋ฅจ ์‚ฌ์šฉ

profile
๋ถ‰์€ ๋ฐฐ ์˜ค์ƒ‰ ๋”ฑ๋‹ค๊ตฌ๋ฆฌ ๊ฐœ๋ฐœ์ž ๐ŸฆƒCloud & DevOps

0๊ฐœ์˜ ๋Œ“๊ธ€