Docker ‐ 궁금증 정리 - dnwls16071/Backend_Summary GitHub Wiki
📚 Alpine 이미지
- 채팅 애플리케이션 개발을 하면서 Docker로 Redis, MySQL을 사용했는데 이 과정에서 Alpine 이미지에 대해서 공부하게 되었다.
- 알파인 이미지는 약 5MB로, 대부분의 다른 리눅스 배포판 기반 이미지보다 훨씬 작다.
- 이로 인해 컨테이너의 전체 이미지 크기가 줄어들고, 이미지의 다운로드 및 배포가 빨라진다.
- 알파인 이미지는 불필요한 패키지와 도구(예: shell, 패키지 매니저, 디버깅 툴 등)를 포함하지 않아 공격 표면이 줄어든다.
- 취약점(CVE) 노출을 최소화하는 데 도움이 된다.
3. 필요한 것만을 포함
- 알파인 이미지는 musl libc와 BusyBox를 기반으로 하며, 필요한 패키지만 설치되어있다.
- 가적으로 필요한 도구나 라이브러리는 Dockerfile에서 직접 설치할 수 있다.
4. 빠른 시작 및 배포
- 이미지가 작기 때문에 컨테이너의 시작 속도가 빠르고, CI/CD 파이프라인에서 효율적으로 사용할 수 있다.
- 단, 알파인 이미지는 glibc 대신 musl libc를 사용하므로, 일부 소프트웨어가 라이브러리 호환성 문제를 겪을 수 있다.
- 이런 경우에는 musl에 맞게 프로그램을 빌드하거나, 필요한 라이브러리를 직접 추가해야한다.