๐Ÿณ Docker manifest ๋ณ€๊ฒฝ?

Hyorยท2025๋…„ 10์›” 23์ผ

Docker manifest๊ฐ€ OCI๋กœ ๋ฐ”๋€ ์ด์œ 

์ตœ๊ทผ์— ์ด๋ฏธ์ง€ ์ •๋ฆฌ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  Docker Registry์—์„œ ์ด๋ฏธ์ง€ manifest๋ฅผ ์กฐํšŒํ–ˆ๋Š”๋ฐ, ์˜ˆ์ „์—๋Š” ์ž˜ ๋˜๋˜ Docker manifest v2 ์š”์ฒญ์ด ์ด์ œ๋Š” 404๋ฅผ ๋ฐ˜ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ™•์ธํ•ด ๋ณด๋‹ˆ ์ด์ œ๋Š” OCI manifest๋กœ ์กฐํšŒํ•ด์•ผ ํ•˜๋”๊ตฐ์š”.
์™œ ์ด๋Ÿฐ ๋ณ€ํ™”๊ฐ€ ์ƒ๊ธด ๊ฑธ๊นŒ์š”?

๋ฐฐ๊ฒฝ: Docker manifest v2 โ†’ OCI manifest

์˜ˆ์ „์—” Docker๊ฐ€ ์ž์ฒด์ ์œผ๋กœ ๋งŒ๋“  manifest v2 ์ŠคํŽ™์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด๊ฑด Docker Hub๋‚˜ ์ผ๋ฐ˜ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ ์ด๋ฏธ์ง€ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ๋•Œ ์“ฐ์ด๋˜ ํ˜•์‹์ด์—ˆ์ฃ .

๊ทธ๋Ÿฐ๋ฐ ์ดํ›„ Docker๊ฐ€ Open Container Initiative(OCI) ์— ์ด๋ฏธ์ง€ ์ŠคํŽ™์„ ๊ธฐ๋ถ€ํ•˜๋ฉด์„œ,
์ด์ „ ์ŠคํŽ™์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๊ณต์‹ ํ‘œ์ค€(OCI Image Specification) ์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ ์ด์ œ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์˜ ํ‘œ์ค€ ํฌ๋งท์€ Docker ์ „์šฉ์ด ์•„๋‹ˆ๋ผ,
๋ชจ๋“  ๋Ÿฐํƒ€์ž„(containerd ๋“ฑ)์—์„œ ๊ณตํ†ต์œผ๋กœ ์“ฐ๋Š” OCI ํฌ๋งท์ด ๋œ ๊ฒ๋‹ˆ๋‹ค.

์ฐจ์ด์  ์ •๋ฆฌ

ํ•ญ๋ชฉ Docker Manifest v2 OCI Manifest
๋ฏธ๋””์–ด ํƒ€์ž…

  • application/vnd.docker.distribution.manifest.v2+json
  • application/vnd.oci.image.manifest.v1+json

์™œ ๋ฐ”๋€Œ์—ˆ์„๊นŒ?

ํ‘œ์ค€ํ™” ๋ชฉ์ 

์ปจํ…Œ์ด๋„ˆ ์ƒํƒœ๊ณ„๊ฐ€ Docker ํ•˜๋‚˜๋กœ๋งŒ ๋Œ์•„๊ฐ€์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
OCI๋Š” ๋ชจ๋“  ๋Ÿฐํƒ€์ž„์ด ๊ฐ™์€ ์ด๋ฏธ์ง€ ํฌ๋งท์„ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ํ‘œ์ค€ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

Docker Engine ์—…๋ฐ์ดํŠธ

Docker 20.10(2020๋…„ 12์›” 9์ผ ์ถœ์‹œ) ์ด์ƒ๋ถ€ํ„ฐ๋Š” OCI ์ŠคํŽ™์ด ๊ธฐ๋ณธ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
manifest ๋ช…๋ น์–ด(docker manifest inspect)๋„ ๋‚ด๋ถ€์ ์œผ๋กœ OCI ํ˜•์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ ˆ์ง€์ŠคํŠธ๋ฆฌ(Registry) ์—…๋ฐ์ดํŠธ

Harbor, GitLab, AWS ECR ๋“ฑ ๋Œ€๋ถ€๋ถ„์˜ ์ตœ์‹  ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋Š”
application/vnd.oci.* ํƒ€์ž…์„ ๊ธฐ๋ณธ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ ,
์˜ˆ์ „ v2 ํ˜•์‹์€ deprecated ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

Docker manifest ์กฐํšŒ ์‹œ v2 ๋Œ€์‹  OCI manifest๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š”
Docker Engine๊ณผ Registry ๋ชจ๋‘ OCI ํ‘œ์ค€์„ ์ฑ„ํƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ฆ‰, Docker๋งŒ์˜ ํ˜•์‹์ด ์•„๋‹ˆ๋ผ ์ด์ œ๋Š” ๋ชจ๋‘๊ฐ€ ๊ณต์œ ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ํ‘œ์ค€์œผ๋กœ ๋„˜์–ด๊ฐ„ ๊ฑฐ์ฃ .

OCI ์ŠคํŽ™์€ ์•ž์œผ๋กœ SBOM, ์„œ๋ช…(Signature), WASM ๋“ฑ ๋‹ค์–‘ํ•œ ์•„ํ‹ฐํŒฉํŠธ๊นŒ์ง€ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์—
์ด์ œ OCI ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ๊ฐ€์žฅ ์•ˆ์ „ํ•˜๊ณ  ํ™•์žฅ์„ฑ ์žˆ๋Š” ์„ ํƒ์ž…๋‹ˆ๋‹ค.

์š”์•ฝ

  • Docker v2 โ†’ OCI๋Š” ํ‘œ์ค€ํ™” ํ๋ฆ„
  • Docker Engine 20.10+๋ถ€ํ„ฐ OCI๊ฐ€ ๊ธฐ๋ณธ
  • ์ตœ์‹  Registry๋“ค์€ v2 manifest ์ง€์› ์ค‘๋‹จ
  • ์•ž์œผ๋กœ๋Š” OCI manifest ๊ธฐ๋ฐ˜์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒŒ ์ •์„

์ฐธ๊ณ  ์ž๋ฃŒ

profile
๊ฐœ๋ฐœ ๋…ธํŠธ

0๊ฐœ์˜ ๋Œ“๊ธ€