apk(Alpine Package Keeper)는 Alpine Linux의 패키지 매니저.
Alpine은 매우 가벼운 배포판으로 Docker 컨테이너 베이스 이미지에서 압도적 인기 — 따라서 컨테이너 시대에 모든 개발자가 마주치는 도구.
기본.
apk add package — 설치.
apk del — 제거.
apk update — 저장소 갱신.
apk upgrade — 업그레이드.
apk search — 검색.
apk info package — 정보.
Alpine의 매력.
1) 매우 작음 — 베이스 이미지 5MB 정도(Ubuntu는 30~70MB).
2) 빠름.
3) 보안 중심 — musl libc·busybox 같은 설계.
4) 컨테이너에 이상적 — 작은 이미지로 빠른 빌드·전송.
Dockerfile 예.
FROM alpine:3.18 / RUN apk add --no-cache python3.
--no-cache는 「캐시 안 만들고」 설치 — 이미지 더 작게.
컨테이너 이미지 최적화의 흔한 패턴.
주의.
musl libc는 glibc와 약간 다른 동작 — 일부 「glibc 가정한 SW」가 Alpine에서 안 동작.
Python의 일부 wheel(pre-built)도 manylinux는 OK지만 musllinux 따로 필요.
컨테이너에서 흔히 「Alpine 빠르게 OK이지만 가끔 호환성 문제」 경험.
한 줄 요약
apk는 Alpine Linux 패키지 매니저 — add·del·update·upgrade.
Alpine은 매우 작아(베이스 5MB) Docker 컨테이너에 인기.
musl libc 차이로 가끔 호환성 문제, --no-cache 패턴 표준.
더 알아볼 것
- distroless — 더 작은 이미지
- musl vs glibc 차이
- Alpine 보안 — minimal attack surface