InfoGrab Docs

컨테이너 레지스트리 데이터 전송 줄이기

GitLab 컨테이너 레지스트리의 데이터 전송량을 줄이는 팁.

컨테이너 레지스트리에서 이미지 또는 태그를 다운로드하는 빈도에 따라 데이터 전송이 상당히 많을 수 있습니다. 이 페이지에서는 컨테이너 레지스트리로 전송하는 데이터 양을 줄이기 위한 몇 가지 권장 사항과 팁을 제공합니다. 데이터 전송 사용량 확인 # GitLab UI에서는 전송 사용량을 사용할 수 없습니다. GitLab-#350905 는 이 정보를 노출하기 위한 작업을 추적하는 에픽입니다. 이미지 크기 확인 # 이미지 크기를 확인하기 위한 도구 및 기법: Skopeo : Skopeo inspect 명령을 사용하여 API 호출을 통해 레이어 수와 크기를 검사합니다. 따라서 docker pull IMAGE 를 실행하기 전에 이 데이터를 검사할 수 있습니다. CI의 Docker: Docker와 함께 GitLab CI를 사용할 때 이미지를 푸시하기 전에 이미지 크기를 검사하고 기록합니다. 예를 들어: docker inspect "$CI_REGISTRY_IMAGE:$IMAGE_TAG" \ | awk '/"Size": ([0-9]+)[,]?/{ printf "Final Image Size: %d\n", $2 }' Dive 는 Docker 이미지, 레이어 내용을 탐색하고 크기를 줄이는 방법을 찾는 도구입니다. 이미지 크기 줄이기 # 더 작은 기본 이미지 사용 # Alpine Linux 와 같은 더 작은 기본 이미지를 사용하는 것을 고려하세요. Alpine 이미지는 약 5 MB로 Debian 과 같은 인기 있는 기본 이미지보다 몇 배 작습니다. Go 애플리케이션과 같이 애플리케이션이 독립 실행형 정적 바이너리로 배포되는 경우 Docker scratch 기본 이미지를 사용하는 것도 고려할 수 있습니다. 특정 기본 이미지 OS를 사용해야 하는 경우 이미지 크기를 줄이는 데 도움이 되는 -slim 또는 -minimal 변형을 찾아보세요. 또한 기본 이미지 위에 설치하는 운영 체제 패키지에 주의하세요. 이러한 패키지는 수백 MB에 달할 수 있습니다. 설치된 패키지 수를 최소한으로 유지하려고 노력하세요. 다단계 빌드 는 일시적인 빌드 종속성을 정리하는 강력한 도구가 될 수 있습니다. 다음과 같은 도구를 사용하는 것도 고려할 수 있습니다: DockerSlim 은 컨테이너 이미지 크기를 줄이는 명령 집합을 제공합니다. Distroless 이미지에는 애플리케이션과 런타임 종속성만 포함됩니다. 표준 Linux 배포판에서 찾을 수 있는 패키지 관리자, 셸 또는 기타 프로그램이 포함되어 있지 않습니다. 레이어 최소화 # Dockerfile의 모든 명령은 해당 명령 중에 적용된 파일 시스템 변경 사항을 기록하는 새 레이어를 생성합니다. 일반적으로 레이어가 많거나 클수록 이미지가 커집니다. Dockerfile에서 패키지를 설치하기 위한 레이어 수를 최소화하려고 노력하세요. 그렇지 않으면 빌드 프로세스의 각 단계에서 이미지 크기가 증가할 수 있습니다. 레이어의 수와 크기를 줄이는 여러 전략이 있습니다. 예를 들어 설치하려는 운영 체제 패키지마다 RUN 명령을 사용하는 대신(패키