-
๋์ปค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ ์ปจํ
์ด๋๋ง๋ค ๋
์์ ์ธ ์ ์ฅ์๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ํ์ง๋ง, ์ปจํ
์ด๋ ๋ด๋ถ์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ๋ ์ปจํ
์ด๋๊ฐ ์ญ์ ๋์์ ๊ฒฝ์ฐ ํจ๊ป ์ฌ๋ผ์ง๋ค.
-
์ด๋ฐ ์ด์๋ก ๋์ปค๋ ๋ฐ์ดํฐ์ ์์์ฑ
์ ๋ณด์ฅํ๊ธฐ ์ํด ์ฌ๋ฌ๋ฐฉ๋ฒ์ ์ง์ํ๋๋ฐ ๊ทธ ์ค ํ๋๊ฐ docker volume
์ด๋ค.
-v <docker volume ์ด๋ฆ>:<์ปจํ
์ด๋๊ฐ ๋ด๋ถ์์ ์ฌ์ฉํ ๊ฒฝ๋ก>
[root@localhost]\# IMAGE=centos
[root@localhost]\# CONT=myvol01
[root@localhost]\# docker container run -it --name $CONT -v docker_vol:/cont_vol $IMAGE
# ์์ฑ๋ ๋ณผ๋ฅจ ํ์ธํ๊ธฐ
[root@localhost]\# docker volume ls
DRIVER VOLUME NAME
local docker_vol
-
๋์ปค ์ปจํ
์ด๋์์ ๋ง์ดํธ ๋ ๋๋ ํ ๋ฆฌ์ ๋งค์นญ๋๋ ๋ก์ปฌ ๊ฒฝ๋ก๋ ๋์ปค ๋ณผ๋ฅจ์ ๋ง์ดํธ ํ์
๋ง๋ค ์์ด
-
bind ๋ง์ดํธ๋ฅผ ์ฌ์ฉํ๋ฉด ํธ์คํธ ์์คํ
์ ์ ์ธ๋ ๋๋ ํ ๋ฆฌ๊ฐ ์ปจํ
์ด๋์ ๋ง์ดํธ ๋๋ค.
-
๋ณธ์ธ์ ํ๊ฒฝ์ ๋ง๊ฒ ์ฌ์ฉํ ์ ์๋ ์ฅ์ , ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก๊ฐ ๋ถ์ฐ๋์ด ๊ด๋ฆฌ๊ฐ ์ด๋ ค์์ง ์๋ ์๋ค.
-v <ํธ์คํธ์ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก>:<์ปจํ
์ด๋์์ ๋ง์ดํธ๋๋ ๊ฒฝ๋ก>[:rw|ro]
-
Docker.์์ ๊ด๋ฆฌํ๋ ํธ์คํธ ํ์ผ ์์คํ
์ ์ผ๋ถ (Linux์ ๊ฒฝ์ฐ, /var/lib/docker/volumes
) ์ ์ ์ฅ๋๋ค.
-
Docker์์ ๋ฐ์ดํฐ๋ฅผ ์ ์งํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ๊ณต์๋ฌธ์์ ๊ธฐ์ฌ๋์ด์๋ค.
-v <๋ณผ๋ฅจ ์ด๋ฆ>:<์ปจํ
์ด๋์์ ๋ง์ดํธ๋๋ ๊ฒฝ๋ก>[:rw|ro]
-
ํธ์คํธ ์์คํ
์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋๋ค.
-
๋ณด์ ํน์ ๋น์๊ตฌ ์ํ ๋ฐ์ดํฐ๋ฅผ ์์ฑํด์ผํ๋ ์ด์ ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์งํ์ง ์์ผ๋ ค๋ ๊ฒฝ์ฐ์ ๊ฐ์ฅ ์ ์ฌ์ฉ๋๋ค.
--tmpfs <์ปจํ
์ด๋์์ ๋ง์ดํธ๋๋ ๊ฒฝ๋ก>
volume
ํ์
์ผ๋ก ๋ง์ดํธ ๋๋ค.[container]\# echo 'Hello, Volume!' > /cont_vol/test/hello.txt
[root@localhost]\# docker container inspect --format='{{json .Mounts}}' $CONT | jq
[
{
"Type": "volume",
"Name": "docker_vol",
"Source": "/var/lib/docker/volumes/docker_vol/_data",
"Destination": "/cont_vol",
"Driver": "local",
"Mode": "z",
"RW": true,
"Propagation": ""
}
]
-v <volume์ด๋ฆ>:<๋ง์ดํธ ๊ฒฝ๋ก>
์ต์
์ด ๊ฐ๊ฐ Source
์ Destination
์ผ๋ก ๋งค์นญ๋๋ค.
[root@localhost]\# tree /var/lib/docker/volumes
/var/lib/docker/volumes/
โโโ docker_vol
โ โโโ _data
โ โโโ test
โ โโโ hello.txt
[:rw|ro]
๋ช
๋ น์ด๋ฅผ ์ด์ฉํ์ฌ ํด๋น ๋๋ ํ ๋ฆฌ์ ๊ถํ์ ๋ถ์ฌํ ์ ์๋ค.
-
๊ถํ์ ๋ช
์ํ์ง ์์์ rw
๊ฐ ๊ธฐ๋ณธ๊ฐ
[root@localhost]\# docker container run -it --name $CONT -v writable:/dirw -v readonly:/read_only:ro $IMAGE
[container]\# echo 'can write' >> /dirw/test # ์ ์์ ์ผ๋ก ์ฐ๊ธฐ ๊ฐ๋ฅ
[container]\# echo 'cannot write' >> /read_only/test # ์๋ฌ ๋ฐ์
bash: /read_only/test: Read-only file system
[root@localhost]\# docker inspect --format='{{json .Mounts}}' | jq
-
ํ์ธ์ "RW"
๊ฐ true/false(๊ถํ) ๊ฐ์ด ๋ค๋ฅธ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ถ์ฒ: https://tech.cloudmt.co.kr/2022/06/29/๋์ปค์-์ปจํ ์ด๋์-์ดํด-2-3-๋ณผ๋ฅจ๊ณผ-๋คํธ์ํฌ/