๐๋์ปค(Docker)์ ๊ธฐ์ด
๋์ปค(Docker)์ ๊ธฐ์ด: ์ปจํ ์ด๋ ๊ธฐ์ ์ดํดํ๊ธฐ
1. ํ๋ก๊ทธ๋จ๊ณผ ํ๋ก์ธ์ค ์ดํดํ๊ธฐ
1.1. ํ๋ก๊ทธ๋จ
- ์ ์: ์คํ ๊ฐ๋ฅํ ์ ์ ์ธ ์ฝ๋ ์งํฉ์ผ๋ก, ํ์ผ ํํ๋ก ์ ์ฅ๋ ๋ช ๋ น์ด๋ค์ ๋ชจ์
- ์์: .exe, .py, .jar ๋ฑ์ ํ์ผ
1.2. ํ๋ก์ธ์ค
- ์ ์: ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์ ์๋ฏธํ๋ฉฐ, ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ๊ณผ ์์์ ํ ๋น๋ฐ์ ์ด์์ฒด์ ์์ ๋ ๋ฆฝ์ ์ผ๋ก ์คํ๋จ
- ํน์ง: ๋์ ์ด๋ฉฐ ์์คํ ์์์ ์ฌ์ฉํจ
ํ๋ก๊ทธ๋จ์ ์ ์ง๋ ์ค๊ณ๋์ด๊ณ , ํ๋ก์ธ์ค๋ ๊ทธ๊ฒ์ด ์คํ๋์ด ์ด์ ์์ง์ด๋ ์ํ์ ๋๋ค.
2. ํ๋ก์ธ์ค์ ์ค๋ ๋์ ๊ด๊ณ
2.1. ํ๋ก์ธ์ค ํน์ง
- ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์ผ๋ก, ๋ ๋ฆฝ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ๊ณผ ์์์ ๊ฐ์ง
- ์๋ก ๊ฐ์ญํ์ง ์๊ณ ๋ณ๋ ฌ ์คํ์ด ๊ฐ๋ฅํจ
- ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์์ ํ ๋ถ๋ฆฌ๋ ํ๊ฒฝ์์ ์คํ๋จ
2.2. ์ค๋ ๋ ํน์ง
- ํ๋ก์ธ์ค ๋ด ์์ ๋จ์๋ก, ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ณต์ ํจ
- ๋น ๋ฅธ ํต์ ์ด ๊ฐ๋ฅํ์ง๋ง ํ๋๊ฐ ์ค๋ฅ๋๋ฉด ์ ์ฒด ํ๋ก์ธ์ค์ ์ํฅ์ ์ค ์ ์์
- ํ ํ๋ก์ธ์ค๋ ์ฌ๋ฌ ์ค๋ ๋๋ฅผ ๊ฐ์ง ์ ์์
ํ๋์ ํ๋ก์ธ์ค๋ ์ฌ๋ฌ ์ค๋ ๋๋ฅผ ๊ฐ์ง ์ ์์ผ๋ฉฐ, ์ค๋ ๋๋ ํ๋ก์ธ์ค์ "์์ ์"๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค.
3. ๋ฆฌ๋ ์ค์ ๋ค์์คํ์ด์ค(Namespace)
๋ค์์คํ์ด์ค๋ ๋ฆฌ๋ ์ค ์ปค๋์ด ํ๋ก์ธ์ค๋ง๋ค ๊ฒฉ๋ฆฌ๋ ์์ ํ๊ฒฝ์ ์ ๊ณตํ๊ธฐ ์ํ ๊ธฐ๋ฅ์ ๋๋ค. ์ปจํ ์ด๋ ๊ธฐ์ (์: Docker)์ ํต์ฌ ๊ตฌ์ฑ ์์ ์ค ํ๋์ ๋๋ค.
3.1. ์ฃผ์ ๋ค์์คํ์ด์ค ์ข ๋ฅ
๋ค์์คํ์ด์ค | ๊ฒฉ๋ฆฌ ๋์ | ์ค๋ช |
---|---|---|
mnt | ํ์ผ ์์คํ | ๊ฐ ํ๋ก์ธ์ค๊ฐ ์๋ก ๋ค๋ฅธ ๋ง์ดํธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ์ ์์ |
pid | ํ๋ก์ธ์ค ID | ๊ฒฉ๋ฆฌ๋ PID ๋ฒํธ ๊ณต๊ฐ ์ ๊ณต (์: ์ปจํ ์ด๋ ๋ด PID 1) |
net | ๋คํธ์ํฌ | ๋ ๋ฆฝ๋ ๋คํธ์ํฌ ์ฅ์น, IP, ํฌํธ ๋ฑ์ ์ฌ์ฉ |
uts | ํธ์คํธ ์ด๋ฆ ๋ฑ | hostname ๋ฐ domainname ๊ฒฉ๋ฆฌ |
ipc | IPC ์์ | ๋ฉ์์ง ํ, ์ธ๋งํฌ์ด ๋ฑ ํ๋ก์ธ์ค ๊ฐ ํต์ ์์ ๋ถ๋ฆฌ |
user | ์ฌ์ฉ์/๊ถํ | UID, GID ๋ฑ ์ฌ์ฉ์ ์ ๋ณด ๊ฒฉ๋ฆฌ |
cgroup | ๋ฆฌ์์ค ์ ์ด ๊ทธ๋ฃน | CPU, ๋ฉ๋ชจ๋ฆฌ ๋ฑ ์์ ์ฌ์ฉ๋ ์ ํ (์์ ํ ๋ค์์คํ์ด์ค๋ ์๋) |
๋ค์์คํ์ด์ค๋ ๋ฆฌ๋ ์ค ์ปจํ ์ด๋ ๊ธฐ์ ์์ ์์ ๊ฒฉ๋ฆฌ๋ฅผ ์ํ ํต์ฌ ๊ธฐ์ ๋ก ํ์ฉ๋๋ฉฐ,unshare
,clone
,setns
๊ฐ์ ์์คํ ์ฝ๋ก ์์ฑ/์ ์ดํ ์ ์์ต๋๋ค.
4. ๋์ปค(Docker)์ ์ดํด
4.1. ๋์ปค์ ์ฐํ

4.2. ๋์ปค์ ์ ์
๋์ปค(Docker)๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์ด๋๋ผ๋ ๋จ์๋ก ํจํค์งํ๊ณ ์คํํ ์ ์๊ฒ ํด์ฃผ๋ ์คํ์์ค ๊ฐ์ํ ํ๋ซํผ์ ๋๋ค.
- OS ์์ค์ ๊ฐ์ํ๋ฅผ ํ์ฉํ์ฌ ๊ฒฝ๋ ์ปจํ ์ด๋ ์คํ
- ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ์ด์ ํ๊ฒฝ์ ์ผ๊ด์ฑ ์ ์ง
- ์ด๋ฏธ์ง ๊ธฐ๋ฐ ๋ฐฐํฌ, ๊ฒฉ๋ฆฌ๋ ์คํ ํ๊ฒฝ ์ ๊ณต
4.3. ๋์ปค์ ํ์์ฑ
ํญ๋ชฉ | ์ค๋ช |
---|---|
ํ๊ฒฝ ์ผ๊ด์ฑ | ๊ฐ๋ฐ, ํ ์คํธ, ์ด์ ํ๊ฒฝ ๊ฐ ์ฐจ์ด ์ ๊ฑฐ |
๋ฐฐํฌ ์๋ํ | ์ด๋ฏธ์ง๋ก ํจํค์งํ์ฌ ์ด๋์๋ ๋์ผํ๊ฒ ์คํ ๊ฐ๋ฅ |
๊ฒฝ๋์ฑ | VM๋ณด๋ค ๋น ๋ฅด๊ณ ์์ ์๋น๊ฐ ์ ์ |
ํ์ฅ์ฑ๊ณผ ๊ด๋ฆฌ | ์์ฒ ๊ฐ์ ์ปจํ ์ด๋๋ฅผ ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ(Kubernetes ๋ฑ)๋ก ํจ์จ์ ์ผ๋ก ์ด์ ๊ฐ๋ฅ |
๊ฐ๋ฐ ์์ฐ์ฑ ํฅ์ | ์์กด์ฑ ํฌํจํ ์คํ ํ๊ฒฝ์ ํต์งธ๋ก ๊ณต์ ๊ฐ๋ฅ |
4.4. ๋์ปค ์ปจํ ์ด๋(Docker Container)๋?
๋์ปค ์ปจํ ์ด๋๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ทธ ์คํ ํ๊ฒฝ์ ํ๋์ ํจํค์ง๋ก ๋ฌถ์ด ๊ฒฉ๋ฆฌ๋ ์ํ๋ก ์คํํ ์ ์๋๋ก ๋ง๋ ๋จ์์ ๋๋ค.
- ์ปจํ ์ด๋๋ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋จ
- ๋ ๋ฆฝ๋ ํ์ผ ์์คํ , ๋คํธ์ํฌ, ํ๋ก์ธ์ค ๊ณต๊ฐ์ ์ฌ์ฉ
- ๊ฐ์ ์ด์์ฒด์ ์ปค๋์ ๊ณต์ ํ๋ฏ๋ก ๋งค์ฐ ๊ฒฝ๋ํ๋จ
5. ๊ฐ์ํ์ ์ ํ
5.1. ํธ์คํธ ๊ธฐ๋ฐ ๊ฐ์ํ (Hosted Virtualization)
๊ธฐ์กด OS ์์ ์ ํ๋ฆฌ์ผ์ด์ ํํ๋ก ํ์ดํผ๋ฐ์ด์ ๋ฅผ ์ค์นํ์ฌ ๊ฐ์ ๋จธ์ ์ ์คํํ๋ ๋ฐฉ์์ ๋๋ค.
- ์์: VirtualBox, VMware Workstation
- ํธ์คํธ OS๊ฐ ๋จผ์ ๋ถํ ๋๊ณ , ๊ทธ ์์์ ํ์ดํผ๋ฐ์ด์ ์คํ
- ์ค์น/์ฌ์ฉ์ด ๊ฐํธํ์ง๋ง, ์ฑ๋ฅ์ ๋ค์ ๋ฎ์
๐ ํน์ง:
- ์ฌ์ฉ์ ์นํ์
- ์ผ๋ฐ ๋ฐ์คํฌํ ํ๊ฒฝ์ ์ ํฉ
- ๊ฐ์ํ ๊ณ์ธต์ด ๊น์ด ์ฑ๋ฅ ์์ค ์กด์ฌ
5.2. ํ์ดํผ๋ฐ์ด์ ๊ธฐ๋ฐ ๊ฐ์ํ (Bare-metal Virtualization)
ํ๋์จ์ด ์์ ์ง์ ํ์ดํผ๋ฐ์ด์ ๋ฅผ ์ค์นํ์ฌ ๊ฐ์ ๋จธ์ ์ ์คํํ๋ ๋ฐฉ์์ ๋๋ค.
- ์์: VMware ESXi, Microsoft Hyper-V, KVM
- ๋ณ๋์ ํธ์คํธ OS ์์ โ ์ฑ๋ฅ ์ฐ์
- ์๋ฒ ๊ฐ์ํ ๋ฐ ํด๋ผ์ฐ๋ ์ธํ๋ผ์์ ์ฃผ๋ก ์ฌ์ฉ
๐ ํน์ง:
- ๊ณ ์ฑ๋ฅ, ๊ณ ํจ์จ
- ๋ฆฌ์์ค ์ง์ ์ ์ด ๊ฐ๋ฅ
- ์ด์ ๋ณต์ก๋ ์์
5.3. ์ปจํ ์ด๋ ๊ฐ์ํ (Container Virtualization)
์ปค๋์ ๊ณต์ ํ๋ฉด์ ํ๋ก์ธ์ค ์์ค์์ ์คํ ํ๊ฒฝ์ ๊ฒฉ๋ฆฌํ๋ ๋ฐฉ์์ ๋๋ค.
- ์์: Docker, Podman, containerd
- ์ด์์ฒด์ ์์ค ๊ฐ์ํ (Namespace + cgroup ๊ธฐ๋ฐ)
- VM๋ณด๋ค ํจ์ฌ ๊ฐ๋ณ๊ณ ๋น ๋ฆ
๐ ํน์ง:
- ๋น ๋ฅธ ์คํ ์๋, ๊ฒฝ๋ํ
- ๊ฐ์ ์ปค๋์ ๊ณต์ ํ๋ฏ๋ก ๋ณด์ ๊ฒฉ๋ฆฌ๋ ์๋์ ์ผ๋ก ์ฝํจ
- ๋ง์ดํฌ๋ก์๋น์ค ๋ฐ CI/CD์ ์ ํฉ
5.4. ๊ฐ์ํ ์ ํ ๋น๊ต
ํญ๋ชฉ | ํธ์คํธ ๊ธฐ๋ฐ | ํ์ดํผ๋ฐ์ด์ ๊ธฐ๋ฐ | ์ปจํ ์ด๋ ๊ธฐ๋ฐ |
---|---|---|---|
์คํ ์์น | OS ์ | ํ๋์จ์ด ์ | OS ์ |
์ฑ๋ฅ | ๋ฎ์ | ๋์ | ๋งค์ฐ ๋์ |
๊ฒฉ๋ฆฌ ์์ค | ๋์ | ๋งค์ฐ ๋์ | ์ค๊ฐ |
์์ ํจ์จ | ๋ฎ์ | ์ค๊ฐ | ๋งค์ฐ ๋์ |
์ฌ์ฉ ์ | ๊ฐ์ธ ๊ฐ๋ฐ, ์ค์ต | ํด๋ผ์ฐ๋, ์๋ฒ ๊ฐ์ํ | DevOps, ๋ง์ดํฌ๋ก์๋น์ค |
6. ๋์ปค ๊ตฌ์ฑ ์์

๋์ปค๋ ์ฌ๋ฌ ํต์ฌ ๊ตฌ์ฑ ์์๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ๊ฐ ์์๋ ์ปจํ ์ด๋ ์คํ์ ์ํ ํน์ ์ญํ ์ ๋ด๋นํฉ๋๋ค.
6.1. ์ฃผ์ ๊ตฌ์ฑ ์์
- dockerd (Docker Daemon):
- ๋์ปค์ ํต์ฌ ํ๋ก์ธ์ค๋ก, ์ปจํ ์ด๋ ์์ฑ, ์คํ, ๋ชจ๋ํฐ๋ง์ ๋ด๋น
- ์ฌ์ฉ์ ๋ช ๋ น์ ๋ฐ์ ์ฒ๋ฆฌํ๋ ์๋ฒ ์ญํ ์ํ
- REST API๋ฅผ ํตํด ํด๋ผ์ด์ธํธ์ ํต์
- containerd:
- ์ปจํ ์ด๋ ๋ฐํ์์ ๊ด๋ฆฌํ๋ ๋ฐ๋ชฌ
- ์ด๋ฏธ์ง ์ ์ก, ์์ถ ํด์ , ๊ด๋ฆฌ ๋ด๋น
- ์ปจํ ์ด๋ ์คํ, ๊ฐ๋ , ๋คํธ์ํน ์ค์ ๊ด๋ฆฌ
- ๋์ปค์ ๋ ๋ฆฝ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณ ์์ค ๋ฐํ์
- libcontainer:
- ์ ์์ค ์ปจํ ์ด๋ ๋ฐํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ๋ฆฌ๋ ์ค ๋ค์์คํ์ด์ค์ cgroup์ ํ์ฉํ์ฌ ์ค์ ์ปจํ ์ด๋ ๊ฒฉ๋ฆฌ ๊ตฌํ
- ์ปจํ ์ด๋ ์์ฑ ๋ฐ ์คํ์ ํ์ํ ์์คํ ํธ์ถ ์ฒ๋ฆฌ
6.2. ๊ธฐํ ์ค์ ๊ตฌ์ฑ ์์
- Docker CLI: ์ฌ์ฉ์๊ฐ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ ํด๋ผ์ด์ธํธ ์ธํฐํ์ด์ค
- Docker API: ๋์ปค ๊ธฐ๋ฅ์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ ๊ทผํ ์ ์๋ API
- Docker Registry: ๋์ปค ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๊ณ ๊ณต์ ํ๋ ์ ์ฅ์ (์: Docker Hub)
- Docker Compose: ์ฌ๋ฌ ์ปจํ ์ด๋๋ก ๊ตฌ์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์/์คํ ๋๊ตฌ
๋์ปค์ ์ํคํ ์ฒ๋ ๊ณ์ธตํ๋์ด ์์ด ๊ฐ ๊ตฌ์ฑ ์์๊ฐ ํน์ ์ฑ ์์ ๊ฐ๊ณ ์๋ก ํ๋ ฅํ๋ฉฐ ๋์ํฉ๋๋ค. ์ด๋ฌํ ๋ชจ๋์ ๊ตฌ์กฐ๋ ๋์ปค๊ฐ ๋ค์ํ ํ๊ฒฝ์์ ์ ์ฐํ๊ฒ ์๋ํ ์ ์๊ฒ ํด์ค๋๋ค.
7. ๋์ปค ์๋ ๋ฐฉ์
7.1. ๋์ปค ์ํคํ ์ฒ ๊ตฌ์ฑ์์
๐ฆ ๋์ปค ํด๋ผ์ด์ธํธ (Docker Client)
- ์ฌ์ฉ์์ ๋์ปค ์์คํ ๊ฐ์ ์ธํฐํ์ด์ค.
docker build
,docker pull
,docker run
๋ฑ ๋ช ๋ น์ด ์ ๋ ฅ ์ง์ .- ๋ช ๋ น์ด๋ฅผ REST API ํํ๋ก ๋์ปค ํธ์คํธ(Docker Daemon)์ ์ ๋ฌ.
โ๏ธ ๋์ปค ํธ์คํธ (Docker Host / Docker Daemon)
- ๋์ปค ์์ง(Docker Engine)์ด ๋์ํ๋ ์์คํ .
- ์ปจํ ์ด๋ ์์ฑ, ์ด๋ฏธ์ง ๊ด๋ฆฌ, ๋คํธ์ํฌ, ๋ณผ๋ฅจ ๊ด๋ฆฌ ๋ฑ ์ค์ ์์ ์ํ.
- ํด๋ผ์ด์ธํธ ๋ช ๋ น์ ๋ฐ์ ์ปจํ ์ด๋ ๋ฐ ์ด๋ฏธ์ง ๊ด๋ฆฌ.
๐๏ธ ๋์ปค ๋ ์ง์คํธ๋ฆฌ (Docker Registry)
- ์ด๋ฏธ์ง ์ ์ฅ์. ๋ํ์ ์ผ๋ก Docker Hub.
- ๊ฐ์ธ ๋๋ ๊ณต์ฉ ๋ ์ง์คํธ๋ฆฌ ์ด์ ๊ฐ๋ฅ (์: GitHub Container Registry, AWS ECR ๋ฑ).
push
,pull
๋ช ๋ น์ ํตํด ์ด๋ฏธ์ง ์ ๋ก๋ ๋ฐ ๋ค์ด๋ก๋ ๊ฐ๋ฅ.
7.2. ์ฃผ์ ๋ช ๋ น์ด ์คํ ํ๋ฆ
๐จ docker build
๋ก์ปฌ Dockerfile๋ก๋ถํฐ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ๊ณผ์
- ๋์ปค ํด๋ผ์ด์ธํธ๊ฐ
docker build
๋ช ๋ น์ ์คํํ๋ค. - ๋์ปค ํธ์คํธ๋
Dockerfile
์ ์ฝ๊ณ ๋จ๊ณ๋ณ๋ก ๋ ์ด์ด(layer) ๋ฅผ ๋ง๋ค์ด ์ด๋ฏธ์ง๋ฅผ ์์ฑ. - ๊ฐ ๋ช ๋ น์ด(EXPOSE, COPY, RUN ๋ฑ)๋ ์ด๋ฏธ์ง์ ์๋ก์ด ๋ ์ด์ด๋ก ์ ์ฅ๋จ.
- ์ด๋ฏธ์ง ์์ฑ์ด ์๋ฃ๋๋ฉด ๋ก์ปฌ ์ด๋ฏธ์ง ์บ์์ ์ ์ฅ๋จ.
- (์ ํ)
docker push
๋ก ๋์ปค ๋ ์ง์คํธ๋ฆฌ์ ์ ๋ก๋ ๊ฐ๋ฅ.
๐ ์์:
docker build -t myapp:latest .
โฌ๏ธ docker pull
๋์ปค ๋ ์ง์คํธ๋ฆฌ์์ ์ด๋ฏธ์ง ๋ค์ด๋ก๋
- ๋์ปค ํด๋ผ์ด์ธํธ๊ฐ
docker pull
๋ช ๋ น์ ์คํํ๋ค. - ๋์ปค ํธ์คํธ๋ ์ง์ ๋ ๋ ์ง์คํธ๋ฆฌ(Docker Hub ๋ฑ)์ ํต์ .
- ์์ฒญ๋ ์ด๋ฏธ์ง๊ฐ ์๋์ง ํ์ธ ํ, ์ด๋ฏธ์ง ๋ ์ด์ด๋ค์ ๋ค์ด๋ก๋.
- ๋ค์ด๋ก๋๋ ์ด๋ฏธ์ง๋ ๋ก์ปฌ ์บ์์ ์ ์ฅ๋จ.
๐ ์์:
docker pull nginx:latest
๐ docker run
์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ปจํ ์ด๋ ์คํ
- ๋์ปค ํด๋ผ์ด์ธํธ๊ฐ
docker run
๋ช ๋ น์ ์คํํ๋ค. - ๋์ปค ํธ์คํธ๋ ๋ก์ปฌ์ ํด๋น ์ด๋ฏธ์ง๊ฐ ์๋์ง ํ์ธ:
- ์์ผ๋ฉด ์๋์ผ๋ก
pull
์ํ.
- ์์ผ๋ฉด ์๋์ผ๋ก
- ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฝ๊ธฐ ์ ์ฉ ๋ ์ด์ด ์์ฑ.
- ์ฝ๊ธฐ/์ฐ๊ธฐ ๊ฐ๋ฅํ ์ปจํ ์ด๋ ๋ ์ด์ด๋ฅผ ์์ ์ถ๊ฐํ์ฌ ์ปจํ ์ด๋ ์์ฑ.
- ์ง์ ๋ ๋ช ๋ น์ด(CMD, ENTRYPOINT ๋ฑ)๋ฅผ ์คํํ๊ณ ์ปจํ ์ด๋๋ฅผ ๊ตฌ๋.
๐ ์์:
docker run -d -p 8080:80 nginx:latest
7.3. ๊ด๊ณ ์์ฝ
[ Docker Client ]
|
v
REST API ๋ช
๋ น ์ ๋ฌ
|
[ Docker Host (Docker Daemon) ]
| | |
| Build Run
| | |
v v v
[ Local Images ] [ Running Containers ]
|
v
Pull/Push Image
|
[ Docker Registry (e.g., Docker Hub) ]
8.๋์ปค ์ด๋ฏธ์ง ๊ตฌ์กฐ
8.1. ์ด๋ฏธ์ง ์ธ๋ฑ์ค(Image Index)
- ๋ฉํฐ ์ํคํ ์ฒ ์ด๋ฏธ์ง๋ฅผ ์ง์ํ๊ธฐ ์ํ ์์ ์์ค ๋งค๋ํ์คํธ
- ๋ค์ํ OS/์ํคํ ์ฒ๋ฅผ ์ํ ๋งค๋ํ์คํธ ๋ชฉ๋ก์ ํฌํจ
- ํน์ ํ๊ฒฝ์ ๋ง๋ ์ ์ ํ ์ด๋ฏธ์ง ๋งค๋ํ์คํธ๋ฅผ ์ ํํ ์ ์๊ฒ ํจ
- ์ด๋ฏธ์ง ํ๊ทธ๊ฐ ๊ฐ๋ฆฌํค๋ ์ค์ ๋์์ด๋ฉฐ, ์ฌ๋ฌ ์ํคํ ์ฒ์ฉ ๋งค๋ํ์คํธ ๋ชฉ๋ก์ ๊ด๋ฆฌ
8.2. ์ด๋ฏธ์ง ๋งค๋ํ์คํธ(Image Manifest)
- ์ด๋ฏธ์ง ๊ตฌ์ฑ ์์์ ๋ํ ๋ฉํ๋ฐ์ดํฐ ํฌํจ
- ์ฃผ์ ๊ตฌ์ฑ ์์:
- ์ด๋ฏธ์ง ์ค์ (config): ์ปจํ ์ด๋ ์คํ ํ๊ฒฝ, ๋ช ๋ น์ด, ํ๊ฒฝ ๋ณ์ ๋ฑ ์ ์
- ๋ ์ด์ด(layers): ์ด๋ฏธ์ง๋ฅผ ๊ตฌ์ฑํ๋ ๊ฐ ๋ ์ด์ด์ ๋ค์ด์ ์คํธ ์ฐธ์กฐ
- ๋ฏธ๋์ด ํ์ (mediaType): ๋งค๋ํ์คํธ ํ์ ์ ์
- ์ด๋ฏธ์ง๋ฅผ ์คํํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๋ ์ด์ด์ ์ค์ ์ ๋ณด ์ ๊ณต
- OCI(Open Container Initiative) ํ์ค ํ์ ์ฌ์ฉ
8.3. ๋ ์ด์ด(Layer)
- ์ด๋ฏธ์ง์ ํต์ฌ ๊ตฌ์ฑ ์์๋ก, ํ์ผ ์์คํ ๋ณ๊ฒฝ์ฌํญ ์งํฉ
- ๊ฐ ๋ ์ด์ด๋ ์ด์ ๋ ์ด์ด ์์ ์์ด๋ ํํ
- ์ฃผ์ ํน์ง:
- ์ฝ๊ธฐ ์ ์ฉ: ์์ฑ ํ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅ
- ์ฆ๋ถ์ : Dockerfile์ ๊ฐ ๋ช ๋ น์ด๊ฐ ์ ๋ ์ด์ด ์์ฑ
- ์บ์ฑ ๊ฐ๋ฅ: ๋ ์ด์ด ์ฌ์ฌ์ฉ์ผ๋ก ๋น๋ ์๊ฐ ๋จ์ถ
- ๊ณต์ ๊ฐ๋ฅ: ์ฌ๋ฌ ์ด๋ฏธ์ง ๊ฐ ๋์ผ ๋ ์ด์ด ๊ณต์ ๋ก ์ ์ฅ ๊ณต๊ฐ ํจ์จํ
- tar ์์นด์ด๋ธ ํํ๋ก ์ ์ฅ๋๋ฉฐ ๊ณ ์ SHA256 ํด์๋ก ์๋ณ
8.4. ๊ด๊ณ
- ์ด๋ฏธ์ง ํ๊ทธ โ ์ด๋ฏธ์ง ์ธ๋ฑ์ค ์ฐธ์กฐ
- ์ด๋ฏธ์ง ์ธ๋ฑ์ค โ ์ฌ๋ฌ ๋งค๋ํ์คํธ ์ฐธ์กฐ
- ๋งค๋ํ์คํธ โ ์ค์ ํ์ผ๊ณผ ๋ ์ด์ด ์ฐธ์กฐ
- ๋ ์ด์ด๋ค โ ์ค์ ํ์ผ ์์คํ ๋ด์ฉ ์ ์ฅ
์ด๋ฌํ ๊ณ์ธต์ ๊ตฌ์กฐ๋ ๋์ปค์ ํจ์จ์ ์ธ ์ด๋ฏธ์ง ๋ฐฐํฌ, ์ ์ฅ, ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.