DockerSlim으로 컨테이너 이미지 크기 줄이기
이전 기사에서 Dockerfile을 최적화 하는 방법(Docker 이미지 사이즈 최소화하기)에 대해 관련 기사를 공유하였습니다. 이번 기사에서는 DockerSlim으로 컨테이너 이미지 크기를 줄이는 방법에 대해 요약 및 공유 합니다. 🌈 프롤로그(Prologue) - 컨테이너 이미지가 작을수록 애플리케이션이 처음으로 더 빨리 회전하고 더 빨리 확장됩니다. 그러나 많은 컨테이너 이미지는 수백 메가바이트로 꽤 큽니다. - 이 기사에서는 DockerSlim이라는 프로젝트를 사용하여 크기에 맞게 Docker 컨테이너 이미지를 최적화하는 방법을 알아봅니다. - Apache 2.0 라이선스에 따라 오픈 소스로 제공되는 DockerSlim은 컨테이너 이미지의 어떤 것도 변경하지 않지만 여전히 크기를 최대 30배까지 줄이거나 최소화할 수 있습니다. - DockerSlim은 또한 사용 가능한 공격 영역을 줄임으로써 패키지를 더 안전하게 만듭니다. - DockerSlim은 다양한 기술을 사용하여 컨테이너 이미지를 최적화하고 보호합니다. 그 중 하나는 App이 비즈니스 로직을 제공하는 데 필요하지 않은 컨테이너 이미지의 패키지와 파일을 폐기하는 것입니다. 🌈 DockerSlim 사용을 위한 단순한 2단계 프로세스 1️⃣ 1단계: DockerSlim 설치 - DockerSlim의 설치 단계는 DockerSlim GitHub 리포지토리에 설명되어 있습니다. 다음은 brew를 사용하여 macOS에 DockerSlim을 설치하는 방법입니다. $ brew install docker-slim 2️⃣ 2단계: Docker 이미지 축소 - DockerSlim이 설치되면 이를 사용하여 기존 컨테이너 이미지에 대해 docker-slim을 실행하여 Docker 이미지를 축소할 수 있습니다. docker images를 실행하여 현재 사용 가능한 컨테이너 이미지를 나열하는 것으로 시작합니다. $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE python-hello-world-ubi latest 50c12e1ca549 13 days ago 169MB 다음으로 기존 컨테이너 이미지에 대해 docker-slim build를 실행하여 축소합니다. $ docker-slim build python-hello-world-ubi docker-slim: message='join the Gitter channel to ask questions or to share your feedback' info='https://gitter.im/docker-slim/community' docker-slim: message='join the Discord server to ask questions or to share your feedback' info='https://discord.gg/9tDyxYS' docker-slim: message='Github discussions' info='https://github.com/docker-slim/docker-slim/discussions' cmd=build info=param.http.probe message='using default probe' cmd=build state=started cmd=build info=params rt.as.user='true' keep.perms='true' tags='python-hello-world-ubi.slim ' target.type='image' target='python-hello-world-ubi' continue.mode='probe' cmd=build state=image.inspection.start ... ... ... cmd=build state=done cmd=build info=commands message='use the xray command to learn more about the optimize image' ... ... docker-slim은 소스 이미지에서 최적화된 이미지를 생성하고 .slim 파일 확장자로 저장합니다. $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE python-hello-world-ubi latest 50c12e1ca549 13 days ago 169MB python-hello-world-ubi.slim latest 17ba0fab2e4e 13 days ago 25.8MB 이 경우 원본 이미지는 169MB이고 새로 최적화된 이미지는 25.8MB로 크기가 600% 줄었습니다. 🌈 DockerSlim 컨테이너 보고서 가져오기 - 궁금한 경우 docker-slim xray 명령을 사용하여 패키지 크기에 대한 세부 정보를 얻을 수 있습니다. 이 명령은 대상 컨테이너 이미지에 대한 정적 분석을 수행하고 이미지에서 Dockerfile을 리버스 엔지니어링하여 컨테이너 이미지 내부에 무엇이 있고 왜 그렇게 큰지 알려줍니다. $ docker-slim xray python-hello-world-ubi - docker-slim의 xray 옵션은 컨테이너 이미지에 대한 모든 세부 정보가 포함된 slim.report.json 파일을 생성하고 그 안에 무엇이 있는지 조사할 수 있는 훌륭한 리소스를 제공합니다. 🌈 결론 - 부풀린 컨테이너 이미지는 애플리케이션 성능에 부정적인 영향을 미칠 수 있습니다. 컨테이너 이미지가 너무 커지는 것 같으면 이 기사를 읽은 후 DockerSlim을 사용하여 이미지를 축소하는 방법을 알아야 합니다. [원본기사] https://developers.redhat.com/articles/2022/01/17/reduce-size-container-images-dockerslim#get_a_dockerslim_container_report