• toc {:toc}

Alpine Linux

๋ฆฌ๋ˆ…์Šค๋Š” ์˜คํ”ˆ์†Œ์Šค OS๋กœ ๋งŽ์€ ์‚ฌ์šฉ์ž, ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์˜ํ•ด ๊ฐ ๋ถ„์•ผ, ์‚ฌ์šฉ์ž์— ๋งž์ถ”์–ด ๋ณ€ํ˜•๋˜์—ˆ๊ณ , Alpine์€ ๊ทธ ์ค‘ ํ•˜๋‚˜์˜ OS์ด๋‹ค. Alpine์€ โ€˜Smallโ€™, โ€˜Simpleโ€™, โ€˜Secureโ€™์— ๋ชฉ์ ์„ ๋‘๊ณ  ๋งŒ๋“ค์–ด์กŒ๊ณ , ๊ฐœ๋ฐœ์ด ์ด๋ฃจ์–ด์ง€๋ฉด์„œ ์ปค๋„์„ ์ œ์™ธํ•œ ์šฉ๋Ÿ‰์ด 8MB ๋ฐ–์— ๋˜์ง€ ์•Š๋Š” ์•„์ฃผ ๊ฐ€๋ฒผ์šด OS๊ฐ€ ๋˜์—ˆ๋‹ค.

glibc VS musl

๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” Ubuntu, Debian, Centos๋Š” glibc๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ˜๋ฉด Alpine์€ musl๊ณผ BusyBox ์‚ฌ์šฉํ•œ๋‹ค.

glibc๋Š” GNU ํ”„๋กœ์ ํŠธ์—์„œ C ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๊ตฌํ˜„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. GNUํ”„๋กœ์ ํŠธ๋Š” โ€˜GNUโ€™s Not Unixโ€™์˜ ์•ฝ์ž๋กœ, ๋…์  ์†Œํ”„ํŠธ์›จ์–ด์ธ ์œ ๋‹‰์Šค์™€ ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ–์ง€๋งŒ ์œ ๋‹‰์Šค๋Š” ์•„๋‹Œ ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋งŒ๋“ค์ž๋Š” ๋ชฉ์ ์œผ๋กœ ์‹œ์ž‘๋๋‹ค.

musl ๋˜ํ•œ ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๊ธฐ๋ฐ˜์˜ ์šด์˜์ฒด์ œ ์šฉ์œผ๋กœ ๊ณ ์•ˆ๋œ C ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. musl์€ ๊นจ๋—ํ•˜๊ณ  ํšจ์œจ์ ์ด๋ฉฐ, ํ‘œ์ค€์„ ์ค€์ˆ˜ํ•˜๋Š” libc๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ๋‹ค.

musl์€ ๊ฐ€๋ณ๊ณ  ๋น ๋ฅธ ์ˆ˜ํ–‰ ๋Šฅ๋ ฅ์„ ๋ชฉ์ ์œผ๋กœ ๊ตฌํ˜„๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜์ ์œผ๋กœ msul์ด glibc๋ณด๋‹ค ๋” ๊ฐ€๋ณ๊ณ  ๋น ๋ฅด๊ณ , ๋ฉ”๋ชจ๋ฆฌ์™€ CPU ์ž์› ์‚ฌ์šฉ์— ๊ฐ•์ ์„ ๊ฐ–๋Š”๋‹ค. ๋•Œ๋ฌธ์— ์ž์›์— ๋Œ€ํ•œ ์ œํ•œ์ด ์žˆ๋Š” ๋ถ„์•ผ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ณ  ์œ ๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

BusyBox๋Š” ํ•˜๋‚˜์˜ ์‹คํ–‰ ํŒŒ์ผ ์•ˆ์— ์œ ๋‹‰์Šค ๋„๊ตฌ์˜ ์ผ๋ถ€๋ฅผ ์ œ๊ณตํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค. ์•„์ฃผ ์ ์€ ์šฉ๋Ÿ‰์— ํ•„์ˆ˜ ์œ ๋‹‰์Šค ๊ธฐ๋Šฅ์ด ๋“ค์–ด๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž„๋ฒ ๋””๋“œ ํ™˜๊ฒฝ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค๊ณ  ํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ Alpine์€ musl, BusyBox๋ฅผ ์‚ฌ์šฉํ•ด ์ž‘๊ณ , ๊ฐ„๋‹จํ•œ OS์˜ ํŠน์„ฑ์„ ๊ฐ–๋Š”๋‹ค.


Alpine Linux ์‚ฌ์šฉ๋ถ„์•ผ

์œ„์™€ ๊ฐ™์€ ํŠน์„ฑ์œผ๋กœ ์ธํ•ด Alpine์€ ์ฃผ๋กœ ์ปจํ…Œ์ด๋„ˆ, ํด๋ผ์šฐ๋“œ, ์ž„๋ฒ ๋””๋“œ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค. ํŠนํžˆ Alpine์€ Docker container์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.

Docker

Docker๋Š” container ๊ฐœ๋…์„ ์‚ฌ์šฉํ•ด ์—ฌ๋Ÿฌ ์ปดํ“จํŒ… ํ™˜๊ฒฝ์—์„œ application์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค.

Docker๊ฐ€ ์‚ฌ์šฉ๋˜๊ธฐ ์ „์—๋Š” VirtualBox, VMWare์™€ ๊ฐ™์€ ๊ฐ€์ƒํ™”๊ฐ€ ๋งŽ์ด ์‚ฌ์šฉ๋˜์—ˆ๋‹ค. ๊ฐ€์ƒํ™”๋Š” ๊ฐ€์ƒ ๋จธ์‹ ์„ ๋งŒ๋“ค์–ด ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด์˜ ์‚ฌ์šฉ์„ฑ์„ ๋Š˜๋ฆฌ๋Š” ๊ธฐ๋ฒ•์ด๋‹ค.

์•„๋ž˜์˜ ์‚ฌ์ง„์˜ ์™ผ์ชฝ์ด docker, ์˜ค๋ฅธ์ชฝ์ด ๊ฐ€์ƒ๋จธ์‹ ์„ ์‚ฌ์šฉํ•œ ๊ตฌ์กฐ์ด๋‹ค. image

Docker VS ๊ฐ€์ƒ๋จธ์‹ 

๊ฐ€์ƒ๋จธ์‹ ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ปดํ“จํ„ฐ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” Host OS์œ„์— ๊ฐ€์ƒํ™”๋ฅผ ์œ„ํ•œ Hypervisor ์—”์ง„, ๊ทธ ์œ„์— Guest OS์™€ App์ด ๋…๋ฆฝ์ ์œผ๋กœ ์›€์ง์ด๋Š” ํ˜•ํƒœ๋ฅผ ๊ฐ–๋Š”๋‹ค.

ํ•˜์ง€๋งŒ Docker์˜ ๊ฒฝ์šฐ Host OS์™ธ์˜ ๋‹ค๋ฅธ Guest OS๋ฅผ ๊ฐ–์ง€ ์•Š๊ณ  App ๊ตฌ๋™์„ ์œ„ํ•œ ํŒŒ์ผ๋งŒ์„ ์ปจํ…Œ์ด๋„ˆ ํ˜•ํƒœ๋กœ ๊ฐ–๋Š”๋‹ค. ๋•Œ๋ฌธ์— docker๋Š” Host OS์˜ ์ปค๋„์„ ๊ณต์œ ํ•˜๊ณ  App์˜ ์ฐจ์›์—์„œ ๊ฒฉ๋ฆฌ๋˜์–ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค๋ฉด ๊ฐ€์ƒ๋จธ์‹ ์˜ ๊ฒฝ์šฐ Host OS๊ฐ€ Ubuntu Linux์ด๊ณ , ๊ฐ€์ƒ๋จธ์‹ ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ€์ƒ๋จธ์‹ ์„ ํ†ตํ•ด ์œˆ๋„์šฐ OS ์ „์ฒด๋ฅผ ์„ค์น˜ํ•ด ๊ทธ ์œ„์—์„œ App์„ ์‹คํ–‰ํ•˜๋Š” ๊ตฌ์กฐ์ด๋‹ค. Docker์˜ ๊ฒฝ์šฐ์—๋„ container์— OS๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋‹ค. ํ•˜์ง€๋งŒ docker๋Š” Host OS์˜ ์ปค๋„์„ ๊ณต์œ ํ•˜๊ณ  Host OS์™€ ๋‹ค๋ฅธ ๋ถ€๋ถ„๋งŒ container์— ์„ค์น˜ํ•œ๋‹ค.

  • ์žฅ๋‹จ์ 
  1. ๋ณด์•ˆ์  ์ธก๋ฉด
    • ๊ฐ€์ƒ๋จธ์‹  - Host OS, ๊ฐ€์ƒ๋จธ์‹ ๋“ค ์‚ฌ์ด๊ฐ€ ์„œ๋กœ ๋…๋ฆฝ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•ดํ‚น์ด ๋˜์–ด๋„ ๋‹ค๋ฅธ ๊ฐ€์ƒ๋จธ์‹ ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.
    • Docker - Host OS๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Host ๊ถŒํ•œ์ด ํ•ดํ‚น๋˜๋ฉด ๋‹ค๋ฅธ ์ปจํ…Œ์ด๋„ˆ, Host OS๊นŒ์ง€ ์œ„ํ—˜ํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. ์„ฑ๋Šฅ์  ์ธก๋ฉด
    • ๊ฐ€์ƒ๋จธ์‹  - ์‹œ์Šคํ…œ ํ™•์žฅ ์‹œ ์ž์› ์ฒ˜๋ฆฌ ๋‚ญ๋น„๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ถ„์‚ฐ์ฒ˜๋ฆฌ๊ฐ€ ์œ ์—ฐํ•˜์ง€ ์•Š๋‹ค.
    • Docker - ์‹œ์Šคํ…œ ์ž์› ์‚ฌ์šฉ์ด ํšจ์œจ์ ์ด๋‹ค. ๊ฐ๊ฐ์„ ๋ถ„๋ฆฌํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

Alpine์˜ ๊ฒฝ์šฐ ์ปค๋„์„ ์ œ์™ธํ•˜๋ฉด 8KB ๋ฐ–์— ์•ˆ๋˜๋Š” ์•„์ฃผ ์ž‘์€ ์šด์˜์ฒด์ œ์ด๋ฏ€๋กœ docker์˜ ์ž‘๋™์›๋ฆฌ๋ฅผ ์ƒ๊ฐํ•ด๋ณด๋ฉด container์•ˆ์—์„œ Alpine์€ ์•„์ฃผ ๊ฒฝ๋Ÿ‰ํ™”๋˜์–ด์žˆ๊ณ , App์— ํ•„์š”ํ•œ ํŒŒ์ผ๋งŒ ์˜ฌ๋ ค ๊ฒฝ๋Ÿ‰ํ™”ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฐธ๊ณ ๋ฌธํ—Œ