Docker๋
์ ํ๋ฆฌ์ผ์ด์
๊ณผ ์คํ ํ๊ฒฝ์ ํ๋ ๋ฌถ์ด ๋ฐฐํฌํ ์ ์๊ฒ ํด์ฃผ๋ ํ๋ซํผ
์ ํ๋ฆฌ์ผ์ด์
์ ์ด๋ฏธ์ง๋ก ํจํค์งํ์ฌ ์ปจํ
์ด๋ ์คํ, ๊ด๋ฆฌ, ๋ฐฐํฌ ๋ฑ ์ปจํ
์ด๋์ ์๋ช
์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ ์ ์๋๋ก ํด์ค
์ปจํ ์ด๋ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๊ธฐ ๋๋ฌธ์ ํธ์คํธ OS์ ์ปค๋์ ๊ณต์ ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๋จ์๋ก ๊ฒฉ๋ฆฌํ๋ค. ์ด ๋๋ฌธ์ ์คํ ์๋๊ฐ ๋น ๋ฅด๊ณ ๋ฆฌ์์ค ์ฌ์ฉ๋์ด ์์ผ๋ฉฐ, ๋ฐฐํฌ ๋จ์๊ฐ ๊ฐ๋ณ๋ค.
์ด๊ธฐ Docker๋ LXC ๊ธฐ๋ฐ์ด์์ง๋ง, ๋์ปค๊ฐ ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๋จ์ ์ปจํ ์ด๋์ ํนํ๋๋ฉด์ ์์ฒด ๋ฐํ์์ธ libcontainer์ ๊ฐ๋ฐํ์๋ค. libcontainer๋ Docker ๋ด๋ถ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, Linux์ namespace์ cgroups๋ฅผ ์ง์ ์ ์ดํ์ฌ ์ปจํ ์ด๋๋ฅผ ์์ฑํ๋๋ก ์ค๊ณ๋์๋ค.
Docker ๊ตฌ์ฑ์์
- ์ด๋ฏธ์ง: ์ปจํ ์ด๋๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์ค๊ณ๋
- ์ปจํ ์ด๋: ์ด๋ฏธ์ง๋ฅผ ์คํํ ์ค์ ์ธ์คํด์ค
- ๋์ปคํ์ผ: ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์ฝ๋, ํ๊ฒฝ์ค์ ์ ์ ์ํ ํ์ผ
- ๋์ปคํ๋ธ: ์ด๋ฏธ์ง ์ ์ฅ์
Docker ์ํคํ ์ฒ
Docker๋ ํด๋ผ์ด์ธํธ-์๋ฒ ์ํคํ
์ฒ๋ฅผ ์ฌ์ฉํ๋ค.
๋์ปค ํด๋ผ์ด์ธํธ์ docker ps์ ๊ฐ์ ๋ช
๋ น์ด ์
๋ ฅ → ๋์ปค ๋ฐ๋ชฌ์๊ฒ API ์์ฒญ ํ์์ผ๋ก ์ ๋ฌ → ๋์ปค ๋ฐ๋ชฌ์ด ํด๋น ์์
์คํ๊ณผ ๊ฐ์ ํ๋ฆ์ผ๋ก ๋์ํ๋ค.

1. Docker Client
์ฌ์ฉ์๊ฐ ํฐ๋ฏธ๋์ docker build, docker run๊ณผ ๊ฐ์ ๋ช ๋ น์ด๋ค์ ์ ๋ ฅํ๋ ํต๋ก. ์ฌ์ฉ์๊ฐ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด ํด๋ผ์ด์ธํธ๋ ์ด๋ฅผ Docker Daemon์ ์ ๋ฌํ๋ ์ญํ ์ ํจ
2. Docker Host
์ค์ ๋ก ๋์ปค๊ฐ ์คํ๋๋ ์๋ฒ๋ก, Docker Daemon(dockerd)์ด Docker API ์์ฒญ์ ์์ ํ๊ณ ์ด๋ฏธ์ง, ์ปจํ ์ด๋, ๋ณผ๋ฅจ๊ณผ ๊ฐ์ ๋์ปค ๊ฐ์ฒด๋ฅผ ๊ด๋ฆฌํ๋ค. ๋์ปค ์์ง์ผ๋ก๋ ๋ถ๋ฆฌ๋ฉฐ, containerd์ ํต์ ํ๋ ์ญํ ๋ ํ๋ค.
๐ก Container Runtime
์ปจํ ์ด๋ ๋ฐํ์์ด๋ OS ์ปค๋๊ณผ ์ง์ ์ ์ผ๋ก ํต์ ํ๋ฉฐ ์ค์ ๋ก ๊ฒฉ๋ฆฌ๋ ๊ณต๊ฐ์ ๋ง๋ค๊ณ , ์ปจํ ์ด๋๋ฅผ ์ค์ OS ์์์ ์คํ์ํค๋ ํ๋ก๊ทธ๋จ์ด๋ค.
dockerd๊ฐ ์ง์ ์ปจํ ์ด๋๋ฅผ ์คํํ๋ ๊ฒ์ด ์๋, ๊ณ ์์ค ๋ฐํ์์ธ containerd์ ์ ์์ค ๋ฐํ์์ธ runc๋ฅผ ์ฌ์ฉํด์ ์ปจํ ์ด๋๋ฅผ ์คํํ๋ค.
๋ฐ๋ผ์.. ๋์ปค๋ ์ปจํ ์ด๋๋ฅผ ํธํ๊ฒ ๊ด๋ฆฌํ ์ ์๋๋ก ๋์์ฃผ๋ ํ๋ซํผ์ด๊ณ Container Runtime์ ์ค์ ๋ก ์ปจํ ์ด๋๋ฅผ ์คํํ๋ ๊ธฐ์ ์ด๋ค. ๋์ปค์ ์ปจํ ์ด๋ ๋ฐํ์์ ๋ณ๊ฐ์ด๋ฉฐ, ๋์ปค ์์ง์ด ์ปจํ ์ด๋ ๋ฐํ์์ด๋ผ๋ ๊ธฐ์ ์ ๋์ปค์์ง ๋ด๋ถ์์ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค. ๊ทธ๋์ ๋์ปค๊ฐ ์์ด๋ ์ปจํ ์ด๋๋ ์คํ์ด ๊ฐ๋ฅํ๋ค (Kubernetes๋ dockerd ์์ด containerd๋ง์ ์ฌ์ฉํจ)
๊ณ ์์ค ๋ฐํ์: ์ปจํ ์ด๋ ์คํ, ๊ด๋ฆฌ
์ ์์ค ๋ฐํ์: ์ปจํ ์ด๋ ๊ฒฉ๋ฆฌ, ๋ฆฌ์์ค ์ ํ
๋์ปค์ ๋์์ Client → dockerd → containerd → runc → Linux Kernel์ ํ๋ฆ์ผ๋ก ๋์ํ๋ค.
3. Docker Registry
๋์ปค ์ด๋ฏธ์ง๊ฐ ์ ์ฅ๋๋ ๊ณณ
'CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ์ปจํ ์ด๋ (Container) (0) | 2025.04.28 |
|---|---|
| ๊ฐ์ํ (Virtualization) (0) | 2025.04.28 |
| [OS] ํ๋ก์ธ์ค (0) | 2025.02.17 |