1. ์ปจํ
์ด๋ ์คํ ๋ฆฌ์ง์ ๊ธฐ๋ณธ ํน์ง
โข
์ปจํ
์ด๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ฐ์ฑ(Volatile)์ด ์์
โข
์ฆ, ์ปจํ
์ด๋ ๋ด๋ถ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ ์ปจํ
์ด๋๊ฐ ์ญ์ ๋๋ฉด ํจ๊ป ์ฌ๋ผ์ง
โข
๋ฐ์ดํฐ๋ฅผ ์๊ตฌ์ ์ผ๋ก ๋ณด์กดํ๊ฑฐ๋ ์ฌ๋ฌ ์ปจํ
์ด๋ ๊ฐ ๊ณต์ ํ๋ ค๋ฉด ์คํ ๋ฆฌ์ง ์ต์
์ ์ฌ์ฉํด์ผํจ
2. ์คํ ๋ฆฌ์ง ๋ฐฉ์
1) ๋ฐ์ธ๋ ๋ง์ดํธ (Bind Mount)
โข
ํธ์คํธ ๋๋ ํ ๋ฆฌ๋ฅผ ์ปจํ
์ด๋ ๋ด๋ถ ๊ฒฝ๋ก์ ์ง์ ์ฐ๊ฒฐ
โข
๊ฐ๋ฐ ์ ์ฝ๋ ์์ ์ฌํญ์ด ๋ฐ๋ก ์ปจํ
์ด๋์ ๋ฐ์๋์ด ํธ๋ฆฌํจ
docker run --name <์ปจํ
์ด๋๋ช
> -d -v /host/data:/container/data <์ด๋ฏธ์ง๋ช
>
Bash
๋ณต์ฌ
โข
/host/data : ๋ง์ดํธ ํ ํธ์คํธ ๋๋ ํ ๋ฆฌ
โข
/container/data : ๋ง์ดํธํ ์ปจํ
์ด๋ ๋ด๋ถ ๊ฒฝ๋ก
2) ๋ณผ๋ฅจ (Volume)
โข
Docker๊ฐ ์ง์ ๊ด๋ฆฌํ๋ ์ ์ฉ ์คํ ๋ฆฌ์ง
โข
์ปจํ
์ด๋๊ฐ ์ญ์ ๋์ด๋ ๋ฐ์ดํฐ๋ ์ ์ง๋๋ฏ๋ก ์ด์ ํ๊ฒฝ์์ ๊ถ์ฅ๋จ
docker volume create <๋ณผ๋ฅจ๋ช
>
docker run --name <์ปจํ
์ด๋๋ช
> -d -v <๋ณผ๋ฅจ๋ช
>:/app/data <์ด๋ฏธ์ง๋ช
>
docker volume ls
docker volume inspect <๋ณผ๋ฅจ๋ช
>
Bash
๋ณต์ฌ
3) tmpfs ๋ง์ดํธ
โข
๋ฐ์ดํฐ๋ฅผ ํธ์คํธ ๋ฉ๋ชจ๋ฆฌ(RAM) ์ ์ ์ฅ, ๋์คํฌ์๋ ๋จ์ง ์์
โข
์ปจํ
์ด๋๊ฐ ์ข
๋ฃ๋๋ฉด ๋ฐ์ดํฐ๋ ํจ๊ป ์ฌ๋ผ์ง
โข
์์ ์บ์๋ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋ ์ ์ฉํจ
docker run -d --tmpfs /app/cache --name <์ปจํ
์ด๋๋ช
> <์ด๋ฏธ์ง๋ช
>
Bash
๋ณต์ฌ
3. ์ ์ฅ์ ๋๋ผ์ด๋ฒ(Storage Driver)
โข
Docker๋ ์ปจํ
์ด๋ ํ์ผ์์คํ
์ ์ ์ฅ์ ๋๋ผ์ด๋ฒ(overlay2 ๋ฑ) ๋ก ๊ด๋ฆฌํจ
โฆ
overlay2 ๊ฒฝ๋ก : /var/lib/docker/overlay2
โข
Copy-on-Write(CoW) ๋ฐฉ์์ ์ฌ์ฉ โ ๋์ผํ ์ด๋ฏธ์ง๋ฅผ ์ฌ๋ฌ ์ปจํ
์ด๋๊ฐ ๊ณต์ ํ๋ค๊ฐ ์์ ์ด ํ์ํ ๋๋ง ๋ณต์ฌํจ
โข
๋๋ถ์ ํจ์จ์ ์ด๊ณ ๋น ๋ฅด๊ฒ ์ปจํ
์ด๋๋ฅผ ์คํํ ์ ์์
4. ๋ฒ ์คํธ ํ๋ํฐ์ค
1.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปจํ
์ด๋ โ ๋ฐ๋์ ๋ณผ๋ฅจ ์ฌ์ฉ
2.
๊ฐ๋ฐํ๊ฒฝ์์ ์ฝ๋ ๊ณต์ โ ๋ฐ์ธ๋ ๋ง์ดํธ ํ์ฉ
3.
๋ฏผ๊ฐํ ๋ฐ์ดํฐ/์์ ๋ฐ์ดํฐ โ tmpfs ์ฌ์ฉ
4.
๋ฐฑ์
์ ๋ณผ๋ฅจ ๋ฐ์ดํฐ๋ฅผ tar ํ์ผ๋ก ์ถ์ถ
docker run --name <์ปจํ
์ด๋๋ช
> --rm -v <๋ณผ๋ฅจ๋ช
>:/data -v /backup:/backup <์ด๋ฏธ์ง๋ช
> tar cvf /backup/data.tar /data
Bash
๋ณต์ฌ
ํต์ฌ ์์ฝ
โข
์ปจํ
์ด๋ ๊ธฐ๋ณธ ์คํ ๋ฆฌ์ง๋ ํ๋ฐ์ฑ โ ์ปจํ
์ด๋ ์ญ์ ์ ๋ฐ์ดํฐ ์์ค
โข
๋ฐ์ธ๋ ๋ง์ดํธ = ํธ์คํธ ๋๋ ํ ๋ฆฌ ๊ณต์ (๊ฐ๋ฐ์ฉ)
โข
๋ณผ๋ฅจ = Docker ๊ด๋ฆฌ ์คํ ๋ฆฌ์ง (์ด์์ฉ, ๋ฐ์ดํฐ ๋ณด์กด)
โข
tmpfs = ๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฐ ์คํ ๋ฆฌ์ง (๋ณด์/์์)
โข
์ ์ฅ์ ๋๋ผ์ด๋ฒ = Copy-on-Write ๋ฐฉ์