- 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, ์ค๋ฅธ์ชฝ์ด ๊ฐ์๋จธ์ ์ ์ฌ์ฉํ ๊ตฌ์กฐ์ด๋ค.

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์ ์ค์นํ๋ค.
- ์ฅ๋จ์
- ๋ณด์์ ์ธก๋ฉด
- ๊ฐ์๋จธ์ - Host OS, ๊ฐ์๋จธ์ ๋ค ์ฌ์ด๊ฐ ์๋ก ๋ ๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์ ํดํน์ด ๋์ด๋ ๋ค๋ฅธ ๊ฐ์๋จธ์ ์ ์ํฅ์ ์ฃผ์ง ์๋๋ค.
- Docker - Host OS๋ฅผ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ Host ๊ถํ์ด ํดํน๋๋ฉด ๋ค๋ฅธ ์ปจํ ์ด๋, Host OS๊น์ง ์ํํ ์ ์๋ค.
- ์ฑ๋ฅ์ ์ธก๋ฉด
- ๊ฐ์๋จธ์ - ์์คํ ํ์ฅ ์ ์์ ์ฒ๋ฆฌ ๋ญ๋น๊ฐ ๋ฐ์ํ ์ ์๋ค. ๋ถ์ฐ์ฒ๋ฆฌ๊ฐ ์ ์ฐํ์ง ์๋ค.
- Docker - ์์คํ ์์ ์ฌ์ฉ์ด ํจ์จ์ ์ด๋ค. ๊ฐ๊ฐ์ ๋ถ๋ฆฌํด ์ฌ์ฉํ ์ ์๋ค.
Alpine์ ๊ฒฝ์ฐ ์ปค๋์ ์ ์ธํ๋ฉด 8KB ๋ฐ์ ์๋๋ ์์ฃผ ์์ ์ด์์ฒด์ ์ด๋ฏ๋ก docker์ ์๋์๋ฆฌ๋ฅผ ์๊ฐํด๋ณด๋ฉด container์์์ Alpine์ ์์ฃผ ๊ฒฝ๋ํ๋์ด์๊ณ , App์ ํ์ํ ํ์ผ๋ง ์ฌ๋ ค ๊ฒฝ๋ํํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ง์ด ์ฌ์ฉ๋๋ค๋ ๊ฒ์ ์ดํดํ ์ ์๋ค.