Volume ๊ธฐ์ ์ดํด
Docker์์ ์ ๊ณตํ๋ volume ๊ธฐ์ ์ ์ปจํ ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์์ฑ๋๊ณ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ง, ๋ณด์กดํ๊ธฐ ์ํ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ๋ค. ์ปจํ ์ด๋๊ฐ ์ญ์ ๋์ด๋ volume์ ๋ ๋ฆฝ์ ์ผ๋ก ์ด์๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ์ ์งํ๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ปจํ ์ด๋ ๋ด๋ถ์ ๋ฐ์ดํฐ๋ ์ปจํ ์ด๋์ ์๋ช ์ฃผ๊ธฐ์ ์ฐ๊ด๋์ด ์ปจํ ์ด๋ ์ข ๋ฃ ์ ์ญ์ ๋์ง๋ง, ์ด๋ฅผ ์ง์์ ์ผ๋ก ๋ณด์กดํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก volume ๊ธฐ์ ์ด ์ฌ์ฉ๋๋ค.
Volume 3๊ฐ์ง ๋ฐฉ์
1. Bind Mount
- Bind mount ๊ธฐ๋ฒ์ ๋๋ ํฐ๋ฆฌ ๋ฟ๋ง ์๋๋ผ ํ์ผ๋ mount ๊ฐ๋ฅํ๋ค.
- "ํธ์คํธ ํ์ผ ์์คํ ์ ๋๊ฒฝ๋ก" : "์ปจํ ์ด๋ ๋ด๋ถ ๊ฒฝ๋ก" ๋ฅผ ์ง์ mountํ์ฌ ์ฌ์ฉํ๋ค.
- ์ง์ ํ ํธ์คํธ ํ์ผ ์์คํ ์ ๋๊ฒฝ๋ก๊ฐ ๊ธฐ์กด์ ์๋ ๋๋ ํ ๋ฆฌ๋ผ๋ฉด ํด๋น ํ์ผ์์คํ ์ ์์ ์ ๊ถํ์ผ๋ก ์ฐ๊ฒฐ์ด ๋๋ค. ํ์ง๋ง ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ๋ผ๋ฉด ์๋ ์์ฑ๋๊ธด ํ์ง๋ง ์ด ๋๋ ํ ๋ฆฌ๋ ๋ฃจํธ(root)์ฌ์ฉ์ ์์ ๊ฐ ๋๋ค.
- ์ปจํ ์ด๋ ์ ๊ฑฐ ์ Bind mount๊ฐ ์๋ ํด์ ๋์ง๋ง ์์ฑ๋ ํธ์คํธ ๋๋ ํ ๋ฆฌ์ ๋ฐ์ดํฐ(file)์ ๋ณด์กด๋๋ค.
2. Docker volume
- DOcker์์ ๊ถ์ฅํ๋ ๋ฐฉ๋ฒ์ผ๋ก "docker volume create ๋ณผ๋ฅจ๋ช " ์ผ๋ก ๋ณผ๋ฅจ์ ์์ฑ
- docker volume๋ช ๋ น์ด๋ /var/lib/docker ์์ญ์ volume ์์ญ์ ๋ง๋ค์ด ์ปจํ ์ด๋ ๋ด๋ถ ๊ฒฝ๋ก์ ์ฐ๊ฒฐ(mount) ํ๋ค.
- docker volume์ ๋ณผ๋ฅจ ๋ฐ์ดํฐ๋ฅผ Docker๊ฐ ๊ด๋ฆฌํ๋ค.
- ex) docker volume ์ฌ์ฉ ์์
~$ docker volume create my-volume
~$ docker run .. -v my-volume:/app ..
MySQL ์ปจํ ์ด๋ Volume์ฐ๊ฒฐ
- mysql ์ปจํ ์ด๋ ์์ฑ ๋ฐ bind mount ๊ธฐ๋ฒ์ผ๋ก volume ์์ฑ
~$ docker run –itd --name=mydb -e MYSQL_ROOT_PASSWORD=pass123# \
> -e MYSQL_DATABASE=fastcampus \
> -v ${PWD}/mydb-data:/var/lib/mysql \
> mysql:5.7-debian
Nginx ์ปจํ ์ด๋ Volume์ฐ๊ฒฐ
Nginx ์ปจํ ์ด๋๋ฅผ ์ฌ์ฉํ๋ค ์ฅ์ ๋ก ์ค๋จ๋๋ค๊ณ ๊ฐ์ ํ์. ์์ธ์ ์ฐพ๊ธฐ ์ํด log๋ฅผ ํ์ธํด๋ด์ผ ํ๋๋ฐ ์ปจํ ์ด๋๊ฐ ์ค๋จ๋๊ธฐ ๋๋ฌธ์ log๋ฅผ ํ์ธํ ๋ฐฉ๋ฒ์ด ์๋ค. ์ด๋ด ๋ volume์ ๊ตฌ์ฑํ์ฌ ์ค์๊ฐ ์ ๊ทผ ๊ธฐ๋ก ํ์ธ ๋ฐ ์ฅ์ ์ ์๋ฌ์ ๋ํ ์ ๋ณด๋ฅผ ์ปจํ ์ด๋๊ฐ ์ค์ง๋๋ ํ์ธ ๊ฐ๋ฅํ๋๋ก ํ์ฉํ ์ ์๋ค.
- volume์ ์ฐ๊ฒฐํ host ๋๋ ํ ๋ฆฌ ์์ฑ
~$ mkdir -p /home/kevin/nginx-log
- nginx ์ปจํ ์ด๋ ์คํ ๋ฐ ๋ง๋ค์ด์ง host ๋๋ ํ ๋ฆฌ์ volume ์ฐ๊ฒฐ
~$ docker run -d --name=myweb -v /home/kevin/nginx-log:/var/log/nginx p 8011:80 nginx:1.25.0-alpine
'Docker ๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Docker] Docker compose ๊ฐ๋ , ๋ฌธ๋ฒ, ์์ (0) | 2023.09.14 |
---|---|
[Docker] Dockerfile(IaC) ๊ฐ๋ ๋ฐ ๋ช ๋ น์ด, Dockerfile ์ต์ ํ (0) | 2023.09.13 |
[Docker] ๋์ปค DNS์ ์ปจํ ์ด๋ proxy(Nginx) (0) | 2023.09.10 |
[Docker] docker image์ ๋ํ ์ดํด์ ๊ด๋ฆฌ (0) | 2023.09.10 |
[Docker] GUI ์ปจํ ์ด๋ ๊ด๋ฆฌ ๋๊ตฌ, Portainer (0) | 2023.09.10 |