๋ณผ๋ฅจ vs ๋ฐ์ธ๋ ๋ง์ดํธ
๋์ปค ์ปจํ ์ด๋์ ๋ฐ์ดํฐ๋ฅผ ๋ณด์กดํ๊ธฐ ์ํด ๋ณผ๋ฅจ๊ณผ ๋ฐ์ธ๋ ๋ง์ดํธ๋ผ๋ ๋ ๊ฐ์ง์ ์ธ๋ถ ๋ฐ์ดํฐ ์ ์ฅ ๋ฉ์ปค๋์ฆ์ด ์์ต๋๋ค.
Volumes
- ์ปจํ ์ด๋ ์ธ๋ถ์ ํน์ ๋๋ ํ ๋ฆฌ์ ์ฐ๊ฒฐ๋ ๋์ปค ์ปจํ ์ด๋์ ๋ด๋ถ ๋๋ ํฐ๋ฆฌ์ ๋๋ค.
- ๋ณผ๋ฅจ์ ๋์ปค ๋ด์ฅ ๊ธฐ๋ฅ์ผ๋ก ๋์ปค๊ฐ ๊ด๋ฆฌํฉ๋๋ค.
- ๋ณผ๋ฅจ์ ์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋ ๊ฒฝ์ฐ์๋ ์ง์๋๋ฉฐ ๊ณ์ ์กด์ฌํฉ๋๋ค.
- ๋ณผ๋ฅจ์ ๋์ปค๊ฐ ์ธ์ํ๋ ํธ์คํธ ๋จธ์ ์ธ ์ปดํจํฐ์ ์๋ ๋๋ ํฐ๋ฆฌ๋ก ๋์ปค ์ปจํ
์ด๋ ๋ด๋ถ์ ๋๋ ํฐ๋ฆฌ์ ๋งคํ๋ฉ๋๋ค.
(์ปจํ ์ด๋ ๋ด๋ถ์ ํด๋์ ์ปจํ ์ด๋ ์ธ๋ถ ํด๋ ์ฐ๊ฒฐ)
์ต๋ช ๋ณผ๋ฅจ(Anonymous volumes)
FROM node:16
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
EXPOSE 80
VOLUME ["<๋งคํ๋์ด์ง ์ปจํ
์ด๋ ๋ด๋ถ ์์น>"]
CMD ["node", "server.js"]
์ ์์ค์์ ์ ์ฅํ๋ ค๋ VOLUME ["<๋งคํ๋ ์ปจํ
์ด๋ ๋ด๋ถ ์์น>"]
๋ณผ๋ฅจ์ ์ต๋ช
๋ณผ๋ฅจ์ผ๋ก ์ปจํ
์ด๋ ๋ด๋ถ์ ๊ฒฝ๋ก๋ก ์ธ๋ถ ํด๋์ ๋งคํ๋์ด์ง ์ปจํ
์ด๋ ๋ด๋ถ ์์น(๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ์์น)์ ๋ง์ดํธ ํฉ๋๋ค.
VOLUME ["<๋งคํ๋ ์ปจํ ์ด๋ ๋ด๋ถ ์์น>"]
ordocker run -v <๋งคํ๋์ด์ง ์ปจํ ์ด๋ ๋ด๋ถ ์์น>
๋ ์ต๋ช ์ ๋ณผ๋ฅจ์ ์์ฑํฉ๋๋ค.- ์ปจํ ์ด๋ ๋ด๋ถ์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํ ๊ฒ์ผ๋ก ํธ์คํธ ๋จธ์ ์ ๊ฒฝ๋ก๋ ์ ์ ์์ต๋๋ค.
- ์ต๋ช ์ผ๋ก ์์ฑ๋๋ ๋ณผ๋ฅจ์ ๋์ปค๊ฐ ์๋์ผ๋ก ์ด๋ฆ์ ์์ฑํฉ๋๋ค.
- ์ต๋ช
๋ณผ๋ฅจ์ ๋์ปค๊ฐ ๊ด๋ฆฌํ๋ฏ๋ก ์ปจํ
์ด๋๊ฐ ์คํ๋๋ ๋์์๋ง ์กด์ฌํฉ๋๋ค.(์ปจํ
์ด๋๋ฅผ ์ข
๋ฃํ๋ฉด ๋ฐ์ดํฐ๊ฐ ์ฌ๋ผ์ง๋๋ค.)
- ์ปจํ ์ด๋๊ฐ ์์ฑ๋ ๋๋ง๋ค ์ต๋ช ๋ณผ๋ฅจ์ด ๋ค์ ์์ฑ๋ฉ๋๋ค.
- ์ปจํ ์ด๋๊ฐ ์ ๊ฑฐ๋๋ฉด ์ต๋ช ๋ณผ๋ฅจ์ ์๋ฏธ๊ฐ ์์ต๋๋ค.
- ์ต๋ช ๋ณผ๋ฅจ์ ํ๋์ ํน์ ์ปจํ ์ด๋์ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค.
--rm
์ต์ ์ผ๋ก ์ปจํ ์ด๋๋ฅผ ์์ฑ ์ ์ปจํ ์ด๋๋ฅผ ์ค์งํ๋ฉด ์ต๋ช ๋ณผ๋ฅจ์ ์ฌ๋ผ์ง๋๋ค.--rm
์ต์ ์ผ๋ก ์ปจํ ์ด๋๋ฅผ ์์ฑํ์ง ์์ผ๋ฉด ๋์ค์ ์ปจํ ์ด๋๋ฅผ ์ ๊ฑฐํด๋ ์ต๋ช ๋ณผ๋ฅจ์ด ์๋์ผ๋ก ์ ๊ฑฐ๋์ง ์์ต๋๋ค.
์ ์ปจํ ์ด๋๋ฅผ ์คํํ๋ฉด ์๋ก์ด ์ต๋ช ๋ณผ๋ฅจ์ด ๋ค์ ์์ฑ๋ฉ๋๋ค. ์๋ ๋ช ๋ น์ด๋ก ์ต๋ช ๋ณผ๋ฅจ์ ์ ๊ฑฐํ ์ ์์ต๋๋ค.docker volume rm <์ ๊ฑฐํ ๋ณผ๋ฅจ๋ช > or docker volume prune
(์ฌ์ฉํ์ง ์๋ ์ต๋ช ๋ณผ๋ฅจ ์ ๊ฑฐ)
- ์ต๋ช ๋ณผ๋ฅจ์ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ ์ ์์ต๋๋ค.
- ์ปจํ ์ด๋์ ์ด๋ฏธ ์กด์ฌํ๋ ํน์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ทธ๋๋ฐ ์ ์ฉํ๋ฉฐ ๋ฐ์ดํฐ๊ฐ ๋ค๋ฅธ ๋ชจ๋์ ์ํด ๋ฎ์ด ์ฐ์ด๋ ๊ฒ์ ๋ฐฉ์งํ๋๋ฐ ์ ์ฉํฉ๋๋ค.
- ์ธ๋ถ ๊ฒฝ๋ก๋ณด๋ค ์ปจํ ์ด๋ ๋ด๋ถ ๊ฒฝ๋ก์ ์ฐ์ ์์๋ฅผ ๋์ด๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ช ๋ช ๋ ๋ณผ๋ฅจ(named volumes)
- Dockerfile์์ ์์ฑํ ์ ์์ผ๋ฉฐ ์ปจํ
์ด๋๋ฅผ ์์ฑํ ๋
-v <๋ณผ๋ฅจ๋ช >:<๋งคํ๋ ์ปจํ ์ด๋ ๋ด๋ถ ์์น> ์ต์ ์ผ๋ก
์ฝ๋ก ์์ ์ด๋ฆ์ ๋ถ์ฌ ๋ช ๋ช ๋ ๋ณผ๋ฅจ์ ์ถ๊ฐํ ์ ์์ต๋ ๋ค. - ํน์ ์ปจํ ์ด๋์ ์ฐ๊ฒฐ๋์ด ์์ง ์์ต๋๋ค.
- ์ปจํ
์ด๋๊ฐ ์ข
๋ฃ๋์ด๋ ๋ฐ์ดํฐ๊ฐ ์ ์ง๋ฉ๋๋ค. ๋๋ฌธ์ ์ฌ๋ฌ ์ปจํ
์ด๋ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ ์ ์์ต๋๋ค.
- ๋ช ๋ช ๋ ๋ณผ๋ฅจ์ ์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋ ๋ ๋์ปค์ ์ํด ์ญ์ ๋์ง ์์ต๋๋ค.
- ๋ช ๋ช ๋ ๋ณผ๋ฅจ์ ํ๋์ ์ปจํ ์ด๋์๋ง ์ฐ๊ฒฐ๋์ง๋ ์์ต๋๋ค.
- ์ ์ปจํ ์ด๋๋ฅผ ์์ฑํ๋ฉด ๋ณผ๋ฅจ์ด ๋ณต๊ตฌ๋๊ณ ํด๋๊ฐ ๋ณต๊ตฌ๋ฉ๋๋ค.
- ์๊ตฌ์ ์ด์ด์ผ ํ๋ ๋ฐ์ดํฐ๋ ํธ์งํ๊ฑฐ๋ ์ง์ ๋ณผ ํ์๊ฐ ์๋ ์ค์ํ ๋ฐ์ดํฐ์ ์ ํฉํฉ๋๋ค.
๋ฐ์ธ๋ ๋ง์ดํธ
- ํธ์คํธ ์์คํ ํ์ผ ๋๋ ๋๋ ํฐ๋ฆฌ๊ฐ ์ปจํ ์ด๋์ ๋ง์ดํธ ๋ฉ๋๋ค.
docker run -v <ํ๋ก์ ํธ ์ ๋ ๊ฒฝ๋ก>:<๋งคํ๋ ์ปจํ ์ด๋ ๋ด๋ถ ์์น> <์ด๋ฏธ์ง ์ด๋ฆ>
- ์ ๋ ๊ฒฝ๋ก ๋ฐ๋ก ๊ฐ๊ธฐ(shortcuts) example
- macOS / Linux: -v $(pwd):/app
- Windows: -v "%cd%":/app
- ์ ๋ ๊ฒฝ๋ก ๋ฐ๋ก ๊ฐ๊ธฐ(shortcuts) example
- ๋ฐ์ด๋ ๋ง์ดํธ์ ๊ฒฝ์ฐ ์์น๋ฅผ ์ ์ ์์ต๋๋ค.
- ํน์ ์ปจํ ์ด๋์ ์ฐ๊ฒฐ๋์ด ์์ง ์์ต๋๋ค.
- ์ปจํ ์ด๋ ์ข ๋ฃ ๋ฐ ์ ๊ฑฐ ํ์๋ ๋ฐ์ดํฐ๊ฐ ์ ์ง๋๊ณ ์ปจํ ์ด๋ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ *ํ ์ ์์ต๋๋ค.
- ๋ฐ์ธ๋ ๋ง์ดํธ์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ค๋ฉด ํ๋ก์ ํธ ๋ด์ ๋ชจ๋ ๋ก์ปฌ ์ฝํ ์ธ ๋ฅผ ์ญ์ ํด์ผ๋ง ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ ์ ์์ต๋๋ค.
- ์๊ตฌ์ ์ด๊ณ ํธ์ง ๊ฐ๋ฅํ ๋ฐ์ดํฐ์ ์ ํฉํฉ๋๋ค.
'Docker Study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Kubernetes ์ํคํ ์ฒ์ ๊ฐ๋ (0) | 2023.05.03 |
---|---|
๋์ปค ์ปดํฌ์ฆ (0) | 2023.03.18 |
๋์ปค ์ปจํ ์ด๋ ๊ฐ ํต์ (0) | 2023.03.04 |
๋์ปค ์ด๋ฏธ์ง์ ์ปจํ ์ด๋ (0) | 2023.01.26 |
Docker (0) | 2023.01.12 |