๐ย ๊ณต๋ถ ๋ด์ฉ
Docker Volume
Container์ Host ์์คํ ์ด ํน์ ํด๋๋ฅผ ๊ณต์ ํจ์ผ๋ก์จ, Container๊ฐ ์ฌ๋ผ์ง๋๋ผ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด์กดํ๋ ๊ธฐ๋ฅ
Container์ ๋ฐ์ดํฐ
- Container๊ฐ ์คํ๋์๋ค๊ฐ ์ค๋จ๋๋ฉด ๋ฐ์ดํฐ๊ฐ ์ ์ค๋จ
- ์ผํ์ฑ์ผ๋ก ๋์ํ๋๊ฒ ์๋๋ผ๋ฉด, ๋ฐ์ดํฐ๊ฐ ์๊ตฌ์ ์ผ๋ก ๋ณด๊ด๋์ด์ผ ํจ
- ex: MySQL ๋ฑ๊ณผ ๊ฐ์ DB๊ฐ container์์ ๋์ํ๋ ๊ฒ
- ๋ฐ์ดํฐ ๋ณด์กด์ ์ํด ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฐ๋ก
Docker Volume
Docker Volume ์ ์
Host ์์คํ ํด๋ -> Docker Container ์์คํ ํด๋๋ก
mount(=mapping)- Host์์ ๋ด์ฉ์ ๋ฐ๊พธ๋ฉด Docker Container ์ชฝ์๋ ๋ฐ์๋จ (์์ฑ์ ๋ฐ๋ผ ๋ฐ๋๋ ๋ฐ์๋จ)
Docker Container ์ํ์ ๊ด๊ณ ์์ด ๋ฐ์ดํฐ๋ฅผ ์๊ตฌ์ ์ผ๋ก ๋ณด๊ด
- Container๊ฐ ์ค๋จ๋๋๋ผ๋ ๋ฐ์ดํฐ๊ฐ๋จ๊ฒ ๋จ
mount in file system
- mount & unmount
- disk๊ฐ์ ๋ฌผ๋ฆฌ์ ์ธ ์ฅ์น๋ฅผ ํ์ผ ์์คํ
์ ํน์ ์์น์ ์ฐ๊ฒฐํด์ฃผ๋ ๊ธฐ๋ฅ
- ex: ์ธ์ฅํ๋๋ฅผ ์ฐ๊ฒฐํ ๊ฒฝ์ฐ
:E์ฒ๋ผ ์ด ์ฅ์น์ ์ฐ๊ฒฐ๋ ์๋ก์ด ํด๋๊ฐ ์๊น
- ex: ์ธ์ฅํ๋๋ฅผ ์ฐ๊ฒฐํ ๊ฒฝ์ฐ
Docker Volume Type
| |
- ๋์ปค๊ฐ ์์์ ํธ์คํธ ์์คํ ํด๋๋ฅผ ๋ง๋ค๊ณ ์ฐ๊ฒฐ
| |
- ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๊ณ ์ ํธ๋๋ ๋ฐฉ์
- ํ๋์ Volume์ ๋ค์์ Container์์ ๊ณต์ ํ๋ ๊ฒ๋ ๊ฐ๋ฅ
- ๋์ปค๊ฐ ๋ง๋ค์ด ๋ง์ดํธํ๋ ํธ์คํธ ์์คํ
ํด๋์
์ด๋ฆ์ ์ง์ ํ ์ ์์
| |
Image ์์ฑ ์ Docker Volume์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
- VOLUME command๋ฅผ ์ฌ์ฉํ๋ฉฐ, anonymous volume๋ง ์ง์ ๊ฐ๋ฅ
- Host Volume์ด๋ Named Volume์ ์ฌ์ฉ
Docker Volume ์ค์ต
nginx container without volume
- command
| |
- http://localhost:8081/์ ์ฐ๊ฒฐํ ์น ๋ธ๋ผ์ฐ์ ํ๋ฉด

- command
| |
- ์น ๋ธ๋ผ์ฐ์ ์ฐ๊ฒฐ ํ๋ฉด

Volume์ด ์ง์ ๋์ง ์์ ์ํ -> ๋ณ๊ฒฝ์ด ์ ์ฉ๋์ง ์๊ณ ์๋๋๋ก ๋์์์์ ์ ์ ์์
command
| |
- ์น ๋ธ๋ผ์ฐ์ ์ฐ๊ฒฐ ํ๋ฉด

nginx container with volume
- command
| |
- http://localhost:8081/์ ์ฐ๊ฒฐํ ์น ๋ธ๋ผ์ฐ์ ํ๋ฉด


- host ์์คํ ์์์ ํ์ผ์ ์ง์ ์์
- ์น ๋ธ๋ผ์ฐ์ ์ฐ๊ฒฐ ํ๋ฉด

- host ์์คํ ์์์ ํ์ผ ํ์ธ
- ์น ๋ธ๋ผ์ฐ์ ์ฐ๊ฒฐ ํ๋ฉด

Docker ํ๊ฒฝ ํด๋ฆฐ์
์ปจํ ์ด๋ ์ค๋จ ํ ์ญ์ -> ์ด๋ฏธ์ง ์ญ์
CLI
- ์ปจํ ์ด๋ ์ญ์
| |
- ์ด๋ฏธ์ง ์ญ์
| |
Docker Desktop
- Troubleshoot > Clean/Purge data ๋ฅผ ํตํด ์ฝ๊ณ ์ง๊ด์ ์ด๊ฒ ์ญ์ ๊ฐ๋ฅ
Docker ์ค์ต : ์ฌ๋ฌ container๋ฅผ ๊ฐ์ง ์ํํธ์จ์ด
์ค๋ช ๋ฐ ๊ตฌ์กฐ
์ฌ๋ฌ Container๋ฅผ ๊ฐ์ง ์ํํธ์จ์ด๋ฅผ Docker์์ ๋น๋ํ๋ค.
Docker์์ ์ ๊ณตํด์ฃผ๋ ์์ ํ๋ก๊ทธ๋จ : example-voting-app

์ค์ต : ์ผ์ผ์ด ๋งค๋ด์ผํ๊ฒ ์คํ
| |
| |
- ์ด ๊ฒฝ์ฐ ๊ฐ ์ปดํฌํดํธ๋ค ๊ฐ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ด ๋์ง ์์
- vote์ ๋ก๊ทธ์ธํ์ฌ iputils-ping ์ค์น ํ ping
| |
![]()
์ค์ต : ๋คํธ์ํฌ๋ฅผ ๋ง๋ค์ด ์ฐ๊ฒฐํ์ฌ ์คํ
docker network ๊ธฐ๋ฅ ์ฌ์ฉ
- ์ด์ ์๋ docker run - link ์ต์ ์ ์ฌ์ฉํ์์
network๋ฅผ ๋ง๋ค๊ณ , ๋ชจ๋ ์ปจํ ์ด๋๋ฅผ ๋คํธ์ํฌ ์์ผ๋ก ์ง์
- ์ฐ๊ฒฐ์ ๋ฐ๋ผ ๋ณ๊ฐ์ ๋คํธ์ํฌ๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ๋๊ฒ๋ ๊ฐ๋ฅ (back-tier, front-tier)
- ๋จผ์ ์ด์ ์ ์์ฑํ container๋ค์ ์ญ์ ํ๋ค. ๋น๋ํ ์ด๋ฏธ์ง๋ ์ญ์ ํ์ง ์์๋ ๋จ
| |
- ๋คํธ์ํฌ๋ฅผ ์์ฑํ๋ค.
| |
- ์์ ์
๋ ฅํ ์ปค๋งจ๋์
--network mynetwork๋ฅผ ์ถ๊ฐํ์ฌ ์ปจํ ์ด๋๋ฅผ ๋คํธ์ํฌ ์์ ์ง์ ํ๋ค.
| |

- votes

- result
๐ย CHECK
(์ด๋ ต๊ฑฐ๋ ์๋กญ๊ฒ ์๊ฒ ๋ ๊ฒ ๋ฑ ๋ค์ ํ์ธํ ๊ฒ๋ค)
Docker review quiz
Ubuntu 22.04์์ Docker๋ก airflow ์คํํ๋ ๋ฒ
- ๊ฐ์์์ ์๋ ค์ค๋๋ก ์คํํ๋๋ฐ webserver ์ฐ๊ฒฐ์ด ์๋๋ ๋ฌธ์ ๋ฐ์
- ๋ก๊ทธ๋ฅผ ๋ณด๊ณ ๊ฒ์ํด๋ณด๋๊น ๊ถํ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์์ chat gpt์๊ฒ ๋ฌผ์ด๋ด
- airflow ์ค์ ํ๋๋ฐ ์ฐ์ธ docker-compose.yml๋ฅผ ๋ณด๋, user id ์ธํ ์ด airflow id ์ธํ ๊ฐ์ธ 50000:0 ์ธ๊ฑธ ํ์ธ
- ๋ด
ํธ์คํธ์ uid / gid๋ฅผ ํ์ธํ๋ (id -u, id -g) 1001:1002์์ ์ ์ ์์์ - ๊ทธ๋์ .yml๋ฅผ ์์ ํ๊ณ , chown chmod๋ก host ์์คํ
ํ์ผ ๊ฒฝ๋ก์ ๊ถํ๋ ์คฌ์
1 2sudo chown -R 1001:1002 /path/to/your/airflow/directory sudo chmod -R 775 /path/to/your/airflow/directory - ๋ค์ ๋น๋ํด์ผํ๋ ๊ณ ๋ฏผํ๋๋ฐ ์น ์๋ฒ๊ฐ ์๋ก๊ณ ์นจ ํ๋๋ ์ ์์ด ๋จ!
- docker exec์ผ๋ก ์๋ฒ ์ ์ํด์ uid/gid ํ์ธํ๋๊น 50000:0 ๊ทธ๋๋ก์ธ๊ฑธ ๋ด์ ๊ถํ์ ์ฃผ๋๊ฒ ๋ต์ด์๋๋ฏ

