๐ ๋ณผ๋ฅจ์ด๋? ( Volume )
์ปจํ ์ด๋์ ํน์ ํด๋๋ฅผ, ํธ์คํธ ์์คํ (OS)์ ์ฐ๊ฒฐํด,
์ปจํ ์ด๋๊ฐ ์ญ์ ๋๋๋ผ๋, ๋ฐ์ดํฐ๋ฅผ ์ ์งํ ์ ์๋๋กํ๋ ๊ฒ
( docker๊ฐ ์๋์ผ๋ก host ๊ฒฝ๋ก ์ค์ )
ํน์ง
- ์ปจํ ์ด๋์์ host ํด๋์ ํ์ผ์ ์ธ ์ ์๋ค.
๋ณผ๋ฅจ ๋ง๋ค๊ธฐ
docker volumn create <๋ณผ๋ฅจ๋ช
>
๋ณผ๋ฅจ ์ฐ๊ฒฐ๋ ์ปจํ ์ด๋ ๋ง๋ค๊ธฐ
# ์ฐ๊ฒฐํ ๊ฒฝ๋ก๋, docker ์ปจํ
์ด๋ ์ ๊ฒฝ๋ก๊ธฐ์ค์ด๋ค.
docker run -dp 3000:3000 -v <๋ณผ๋ฅจ๋ช
>:<์ฐ๊ฒฐํ ๊ฒฝ๋ก> <์ด๋ฏธ์ง๋ช
>
๋ณผ๋ฅจ ์ ๋ณด ํ์ธํ๊ธฐ
docker volume inspect todo-db
[
{
"CreatedAt": "2022-07-11T10:47:03Z",
"Driver": "local",
"Labels": {},
# ์ค์ ๋ก ํ์ผ์ด ์ ์ฅ๋ OS๊ฒฝ๋ก ( docker VM์ ๊ฒฝ๋ก )
"Mountpoint": "/var/lib/docker/volumes/todo-db/_data",
"Name": "todo-db",
"Options": {},
"Scope": "local"
}
]
๐ ๋ฐ์ธ๋๋?
์ปจํ ์ด๋์ ํน์ ํด๋๋ฅผ, ํธ์คํธ ์์คํ ์ ์ฐ๊ฒฐํ๋ ๊ฒ ( ๋ณผ๋ฅจ๊ณผ ๋์ผ )
( ์ฌ์ฉ์๊ฐ ์ง์ host ๊ฒฝ๋ก ์ง์ )
ํน์ง
- ์ปจํ ์ด๋์์ host ํด๋์ ํ์ผ์ ์ธ ์ ์๋ค. ( readonly )
- ์์ฃผ ๋ณ๊ฒฝ๋๋ ๋ด์ฉ์ ๋งค๋ฒ Image๋ก ๋ง๋ค ํ์๊ฐ ์๋ค!
๐ฉ ๋ฐ์ธ๋ํ๊ธฐ
1.๋ฆฌ๋ ์ค
docker run -dp 3000:3000 \
-w /app -v "$(pwd):/app" \
node:12-alpine \
sh -c "yarn install && yarn run dev"
2. ์๋์ฐ
PS> docker run -dp 3000:3000 `
-w /app -v "$(pwd):/app" `
node:12-alpine `
sh -c "yarn install && yarn run dev"
3. MacOS
$ docker run -dp 3000:3000 \
-w /app -v "$(pwd):/app" \
node:12-alpine \
sh -c "apk add --no-cache python2 g++ make && yarn install && yarn run dev"
์ค๋ช
-w /app # ์ปจํ
์ด๋ ์์ฑํ, ๋ช
๋ น์ด ์คํ๋ ํด๋๋ฅผ /app์ผ๋ก ์ง์
-v "$(pwd):/app" # host์ pwd๋ฅผ, ์ปจํ
์ด๋์ /app ํด๋๋ก ๋ง์ดํธ
node:12-alpine # ์ฌ์ฉํ ์ด๋ฏธ์ง ํ์ผ
sh -c "yarn install && yarn run dev" # sh์ ์คํํ, ํจํค์ง ์ค์น ๋ฐ ์๋ฒ์คํ ๋ช
๋ น (/app)
๋ฐ์ํ