Skip to content

Alpine Linux Images đŸ”ī¸ ​

āĻĄāĻ•āĻžāϰ āχāϕ⧋āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ Alpine Linux āĻšāϞ⧋ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āϜāύāĻĒā§āϰāĻŋ⧟ āĻāĻŦāĻ‚ āĻŦāĻšā§āϞ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻŦ⧇āϏ āχāĻŽā§‡āϜāĨ¤ āĻāϰ āĻŽā§‚āϞ āĻ•āĻžāϰāĻŖ āĻšāϞ⧋ āĻāϰ āĻ…āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ā§āϝ āϛ⧋āϟ āϏāĻžāχāϜ āĻāĻŦāĻ‚ āϏāĻŋāĻ•āĻŋāωāϰāĻŋāϟāĻŋāĨ¤


ā§§. Alpine Linux āĻ•āĻŋ? ​

Alpine Linux āĻāĻ•āϟāĻŋ āύāĻŋāϰāĻžāĻĒāĻ¤ā§āϤāĻž-āϕ⧇āĻ¨ā§āĻĻā§āϰāĻŋāĻ•, āĻšāĻžāϞāĻ•āĻž (Lightweight) āϞāĻŋāύāĻžāĻ•ā§āϏ āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻļāύ āϝāĻž musl libc āĻāĻŦāĻ‚ busybox-āĻāϰ āĻ“āĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āϤ⧈āϰāĻŋāĨ¤ āĻāϟāĻŋ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āϞāĻŋāύāĻžāĻ•ā§āϏ āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻļāύ (āϝ⧇āĻŽāύ: Ubuntu, Debian) āĻĨ⧇āϕ⧇ āĻ…āύ⧇āĻ• āϛ⧋āϟ āĻāĻŦāĻ‚ āĻĻāĻ•ā§āώāĨ¤


⧍. Alpine āĻāϰ āĻŽā§‚āϞ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝāϏāĻŽā§‚āĻš ​

  • Ultra-small Size: āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ Alpine āχāĻŽā§‡āϜ āĻŽāĻžāĻ¤ā§āϰ ā§Ģ-ā§­ MB āϏāĻžāχāĻœā§‡āϰ āĻšā§Ÿ! āϝ⧇āĻ–āĻžāύ⧇ Ubuntu āχāĻŽā§‡āϜ ā§Žā§Ļ MB-āϰ āĻŦ⧇āĻļāĻŋ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤
  • Security: āĻāϰ āĻ…ā§āϝāĻžāϟāĻžāĻ• āϏāĻžāϰāĻĢ⧇āϏ (Attack Surface) āϖ⧁āĻŦ āĻ•āĻŽ āĻ•āĻžāϰāĻŖ āĻāϤ⧇ āĻ…āĻĒā§āĻ°ā§Ÿā§‹āϜāύ⧀āϝāĻŧ āϕ⧋āύ⧋ āĻĒā§āϝāĻžāϕ⧇āϜ āĻŦāĻž āϏāĻžāĻ°ā§āĻ­āĻŋāϏ āĻĨāĻžāϕ⧇ āύāĻžāĨ¤
  • APK Package Manager: āĻāϟāĻŋ āύāĻŋāϜāĻ¸ā§āĻŦ āĻĒā§āϝāĻžāϕ⧇āϜ āĻŽā§āϝāĻžāύ⧇āϜāĻžāϰ apk āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϝāĻž āĻ…āύ⧇āĻ• āĻĻā§āϰ⧁āϤāĨ¤
  • musl libc: āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ glibc āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻāϟāĻŋ āϛ⧋āϟ āĻāĻŦāĻ‚ āĻāĻĢāĻŋāϏāĻŋāϝāĻŧ⧇āĻ¨ā§āϟ musl libc āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤

ā§Š. apk āĻĒā§āϝāĻžāϕ⧇āϜ āĻŽā§āϝāĻžāύ⧇āϜāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ ​

Alpine-āĻ āϕ⧋āύ⧋ āϏāĻĢāϟāĻ“ā§Ÿā§āϝāĻžāϰ āχāĻ¨ā§āϏāϟāϞ āĻ•āϰāĻžāϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϗ⧁āϞ⧋ āϖ⧁āĻŦāχ āϏāĻšāϜ:

bash
# āĻĒā§āϝāĻžāϕ⧇āϜ āϞāĻŋāĻ¸ā§āϟ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž
apk update

# āĻĒā§āϝāĻžāϕ⧇āϜ āχāĻ¨ā§āϏāϟāϞ āĻ•āϰāĻž
apk add curl git

# āĻ•ā§āϝāĻžāĻļ āϜāĻŽāĻž āύāĻž āϰ⧇āϖ⧇ āχāĻ¨ā§āϏāϟāϞ āĻ•āϰāĻž (Best Practice for Docker)
apk add --no-cache nginx

ā§Ē. musl libc āĻŦāύāĻžāĻŽ glibc (āϏāϤāĻ°ā§āĻ•āϤāĻž) ​

āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āĻĄā§‡āĻ•ā§āϏāϟāĻĒ āϞāĻŋāύāĻžāĻ•ā§āϏ (Ubuntu, Debian) glibc āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ Alpine āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ musl libcāĨ¤

  • āϏ⧁āĻŦāĻŋāϧāĻž: āĻāϟāĻŋ āĻ…āύ⧇āĻ• āϛ⧋āϟ āĻāĻŦāĻ‚ āĻĢāĻžāĻ¸ā§āϟāĨ¤
  • āĻ…āϏ⧁āĻŦāĻŋāϧāĻž: āĻ•āĻŋāϛ⧁ āĻ•āĻŋāϛ⧁ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ (āϝ⧇āĻŽāύ: āĻ•āĻŋāϛ⧁ Python āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ āĻŦāĻž āĻœā§‡āύ⧁āχāύ āϜāĻžāĻ­āĻž āĻ…ā§āϝāĻžāĻĒ) musl-āĻ āϏāϰāĻžāϏāϰāĻŋ āϰāĻžāύ āĻ•āϰāϤ⧇ āϏāĻŽāĻ¸ā§āϝāĻž āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϏ⧇āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āφāĻĒāύāĻžāϕ⧇ āĻ•āĻŋāϛ⧁ āĻ•āĻŽā§āĻĒā§āϝāĻžāϟāĻŋāĻŦāĻŋāϞāĻŋāϟāĻŋ āĻĒā§āϝāĻžāϕ⧇āϜ āχāĻ¨ā§āϏāϟāϞ āĻ•āϰāϤ⧇ āĻšā§ŸāĨ¤

ā§Ģ. āϏāĻžāχāϜ āϤ⧁āϞāύāĻž (Size Comparison) ​

āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻļāύāχāĻŽā§‡āϜ āϏāĻžāχāϜ (āĻĒā§āϰāĻžā§Ÿ)
Alpine~5 MB
BusyBox~1 MB
Ubuntu~80 MB
Debian~120 MB

ā§Ŧ. āĻ•āĻ–āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ āĻāĻŦāĻ‚ āĻ•āĻ–āύ āĻ•āϰāĻŦ⧇āύ āύāĻž? ​

āĻ•āĻ–āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ:

  • āϝāĻ–āύ āχāĻŽā§‡āĻœā§‡āϰ āϏāĻžāχāϜ āϛ⧋āϟ āϰāĻžāĻ–āĻž āϖ⧁āĻŦ āϜāϰ⧁āϰāĻŋāĨ¤
  • āϏāĻžāϧāĻžāϰāĻŖ āĻ“ā§Ÿā§‡āĻŦ āĻ…ā§āϝāĻžāĻĒ (Node.js, Go, Python standard apps)-āĻāϰ āϜāĻ¨ā§āϝāĨ¤
  • āĻŽāĻžāχāĻ•ā§āϰ⧋āϏāĻžāĻ°ā§āĻ­āĻŋāϏ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰ⧇āĨ¤

āĻ•āĻ–āύ āĻ•āϰāĻŦ⧇āύ āύāĻž:

  • āϝāĻ–āύ āφāĻĒāύāĻžāϰ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āϖ⧁āĻŦ āĻ¸ā§āĻĒ⧇āϏāĻŋāĻĢāĻŋāĻ• glibc āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ āĻĒā§āĻ°ā§Ÿā§‹āϜāύāĨ¤
  • āϝāĻĻāĻŋ musl libc āĻāϰ āĻ•āĻžāϰāϪ⧇ āφāĻĒāύāĻžāϰ āĻ•āĻŽāĻĒā§āϞ⧇āĻ•ā§āϏ āϏāĻĢāϟāĻ“ā§Ÿā§āϝāĻžāϰ āĻ•ā§āĻ°ā§āϝāĻžāĻļ āĻ•āϰ⧇āĨ¤
  • āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ āϟāĻŋāĻŽā§‡āϰ Alpine āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻāĻ•āĻĻāĻŽāχ āϧāĻžāϰāĻŖāĻž āύāĻž āĻĨāĻžāϕ⧇ āĻāĻŦāĻ‚ āĻĻā§āϰ⧁āϤ āĻĄāĻŋāĻĒā§āϞ⧟āĻŽā§‡āĻ¨ā§āϟ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšā§ŸāĨ¤

āϏāĻžāϰāϏāĻ‚āĻ•ā§āώ⧇āĻĒ (Summary) ​

āĻ…āϧāĻŋāĻ•āĻžāĻ‚āĻļ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ Alpine āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϟāĻžāχ āĻŦ⧁āĻĻā§āϧāĻŋāĻŽāĻžāύ⧇āϰ āĻ•āĻžāϜāĨ¤ āĻāϟāĻŋ āφāĻĒāύāĻžāϰ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰāϕ⧇ āϞāĻžāχāϟāĻ“ā§Ÿā§‡āϟ āĻāĻŦāĻ‚ āϏāĻŋāĻ•āĻŋāωāϰ āϰāĻžāϖ⧇āĨ¤ āϤāĻŦ⧇ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ•āϰāĻžāϰ āĻĒāϰ āĻ…āĻŦāĻļā§āϝāχ āĻāĻ•āĻŦāĻžāϰ āĻŸā§‡āĻ¸ā§āϟ āĻ•āϰ⧇ āύāĻŋāĻļā§āϚāĻŋāϤ āĻšā§Ÿā§‡ āύāĻŋāύ āϝ⧇ āϏāĻŦāĻ•āĻŋāϛ⧁ āĻ āĻŋāĻ•āĻ āĻžāĻ• āϚāϞāϛ⧇ āĻ•āĻŋāύāĻžāĨ¤


TIP

Dockerfile-āĻ FROM node:alpine āĻŦāĻž FROM python:3.9-alpine āĻāϰ āĻŽāϤ⧋ āĻ…āĻĢāĻŋāĻļāĻŋāϝāĻŧāĻžāϞ Alpine-āĻŦ⧇āϏāĻĄ āχāĻŽā§‡āϜāϗ⧁āϞ⧋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻļ⧁āϰ⧁ āĻ•āϰ⧁āύāĨ¤

Released under the MIT License.