docker buildx history rm 명령을 사용하여 빌드 기록 삭제 방법

DockerBeginner
지금 연습하기

소개

이 랩에서는 docker buildx history rm 명령을 사용하여 빌드 기록을 관리하는 방법을 배우게 됩니다. 빌드 기록은 빌드 프로세스와 그 결과를 추적하는 데 유용합니다.

먼저 docker buildx build를 사용하여 빌드 기록을 생성하고 해당 메타데이터를 저장하는 것으로 시작합니다. 그런 다음, docker buildx ls를 사용하여 기존 빌드 기록을 나열하고 세부 정보를 확인하는 방법을 배우게 됩니다. 마지막으로, docker buildx history rm 명령을 사용하여 특정 빌드 기록을 제거하고 모든 빌드 기록을 삭제하는 연습을 할 것입니다.

빌드 기록 생성

이 단계에서는 docker buildx build 명령을 사용하여 빌드 기록을 생성하는 방법을 배우게 됩니다. 빌드 기록은 빌드 컨텍스트, 빌드 인수 및 결과 이미지 ID 를 포함하여 빌드 결과를 추적하는 데 유용합니다.

먼저, 빌드에 사용할 간단한 Dockerfile 을 생성해 보겠습니다. 프로젝트 디렉토리로 이동하여 다음 내용으로 Dockerfile이라는 파일을 생성합니다.

FROM alpine
CMD ["echo", "Hello, Docker!"]

이 Dockerfile 은 매우 간단합니다. alpine 기본 이미지를 사용하고 "Hello, Docker!"를 출력하는 명령을 정의합니다.

이제 이 Dockerfile 에서 이미지를 빌드하고 빌드 기록을 생성해 보겠습니다. --metadata-file 플래그와 함께 docker buildx build 명령을 사용하여 빌드 기록을 파일에 저장합니다.

docker buildx build . --metadata-file build-record.json -t my-hello-image

이 명령에서:

  • docker buildx build .는 현재 디렉토리의 Dockerfile 에서 이미지를 빌드하도록 Docker 에 지시합니다.
  • --metadata-file build-record.json은 빌드 기록을 build-record.json이라는 파일에 저장하도록 지정합니다.
  • -t my-hello-image는 결과 이미지에 my-hello-image라는 이름을 태그합니다.

명령을 실행한 후 빌드 프로세스를 나타내는 출력을 볼 수 있습니다. build-record.json이라는 파일이 현재 디렉토리에 생성됩니다. 이 파일에는 JSON 형식의 빌드 기록이 포함되어 있습니다.

cat 명령을 사용하여 build-record.json 파일의 내용을 볼 수 있습니다.

cat build-record.json

이렇게 하면 빌드에 대한 정보를 포함하는 빌드 기록의 JSON 내용이 표시됩니다.

빌드 기록 목록 확인

이 단계에서는 docker buildx ls 명령을 사용하여 기존 빌드 기록을 나열하는 방법을 배우게 됩니다. 이 명령을 사용하면 생성된 모든 빌드 기록 목록을 볼 수 있습니다.

빌드 기록을 나열하려면 다음 명령을 실행하십시오.

docker buildx ls

이 명령은 사용 가능한 빌드 기록에 대한 정보가 포함된 테이블을 표시합니다. 출력에는 일반적으로 빌더 이름, 사용된 드라이버 및 상태가 포함됩니다.

docker buildx build를 실행할 때 사용되는 기본 빌더에 대한 항목이 표시되어야 합니다. 이전 단계에서 생성한 빌드 기록은 이 빌더와 연결되어 있습니다.

docker buildx ls 명령은 빌드 환경 및 관련 빌드 기록에 대한 개요를 얻는 데 유용합니다.

특정 빌드 기록 삭제

이 단계에서는 docker buildx prune 명령을 사용하여 특정 빌드 기록을 제거하는 방법을 배우게 됩니다. 이 기능은 더 이상 필요하지 않은 개별 빌드 기록을 정리하는 데 유용합니다.

특정 빌드 기록을 제거하려면 해당 ID 를 식별해야 합니다. 첫 번째 단계에서 생성한 build-record.json 파일에서 빌드 기록 ID 를 찾을 수 있습니다. cat을 사용하여 파일을 엽니다.

cat build-record.json

JSON 출력에서 BuildRecord 섹션을 찾습니다. 이 섹션 내에서 "ID" 필드를 찾을 수 있습니다. 이 ID 의 값을 복사합니다. 이는 긴 문자열입니다.

이제 --keep-storage 플래그와 빌드 기록 ID 를 사용하여 docker buildx prune 명령을 사용하여 특정 기록을 제거합니다. <BUILD_RECORD_ID>를 복사한 실제 ID 로 바꿉니다.

docker buildx prune --keep-storage <BUILD_RECORD_ID>

여기서는 --keep-storage 플래그를 사용하여 빌드 캐시가 아닌 빌드 기록을 정리하고 있음을 나타냅니다.

명령을 실행한 후 빌드 기록이 제거되었음을 확인하는 출력을 볼 수 있습니다.

빌드 기록이 제거되었는지 확인하려면 빌드 기록을 다시 나열해 볼 수 있습니다.

docker buildx ls

제거한 특정 빌드 기록은 더 이상 목록에 나타나지 않아야 합니다.

모든 빌드 기록 삭제

이 단계에서는 --all 플래그와 함께 docker buildx prune 명령을 사용하여 모든 빌드 기록을 제거하는 방법을 배우게 됩니다. 이는 모든 빌드 기록을 한 번에 정리하는 편리한 방법입니다.

모든 빌드 기록을 제거하려면 다음 명령을 실행하십시오.

docker buildx prune --all --keep-storage --force

이 명령에서:

  • docker buildx prune은 빌드 관련 데이터를 제거하는 명령입니다.
  • --all은 모든 빌드 기록을 제거해야 함을 지정합니다.
  • --keep-storage는 빌드 캐시가 아닌 빌드 기록을 정리하고 있음을 나타냅니다.
  • --force는 확인 프롬프트를 우회합니다. 이는 스크립팅 또는 상호 작용이 불가능한 환경에서 유용합니다.

명령을 실행한 후 빌드 기록이 제거되었음을 나타내는 출력을 볼 수 있습니다.

모든 빌드 기록이 제거되었는지 확인하려면 빌드 기록을 다시 나열할 수 있습니다.

docker buildx ls

이제 기본 빌더 항목만 표시되고, 그 아래에 특정 빌드 기록은 나열되지 않아야 합니다.

이것으로 Docker 빌드 기록 관리에 대한 실습을 마칩니다. 빌드 기록을 생성, 나열 및 제거하는 방법을 배웠습니다.

요약

이 실습에서는 docker buildx를 사용하여 Docker 빌드 기록을 관리하는 방법을 배웠습니다. 먼저 간단한 Dockerfile 을 생성한 다음 --metadata-file 플래그와 함께 docker buildx build를 사용하여 이미지를 빌드하고 빌드 기록을 생성하여 JSON 파일에 저장했습니다. 그런 다음 docker buildx ls 명령을 사용하여 기존 빌드 기록을 나열하여 빌드에 대한 정보를 확인하는 방법을 배웠습니다.

또한 이 실습에서는 docker buildx history rm <record_id>를 사용하여 특정 빌드 기록을 제거하고 docker buildx history rm --all을 사용하여 모든 빌드 기록을 한 번에 제거하는 방법을 다루었습니다. 이러한 단계는 Docker Buildx 내에서 빌드 기록의 라이프사이클 관리를 보여줍니다.