- 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 ์ ํ์ํ ํ์ผ๋ง ์ฌ๋ ค ๊ฒฝ๋ํํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ง์ด ์ฌ์ฉ๋๋ค๋ ๊ฒ์ ์ดํดํ ์ ์๋ค.