Docker가 사용하지 않는 이미지를 삭제하는 것에 대한 생각

6532 단어 docker
아직 듣지 못했다면 Docker is planning to delete unused images . 6개월 이상 이미지를 사용한 사람이 없고 업로더가 무료 요금제를 사용하는 경우 Docker Hub에서 이미지를 삭제하도록 서비스 약관을 변경했습니다. Docker Hub에서 호스팅되는 15페타바이트의 컨테이너 이미지 중 4.5페타바이트가 비활성 컨테이너입니다. 이 모든 것이 지금으로부터 2개월 후인 11월 1일에 일어날 예정입니다.

이것은 공식 성명을 읽고 싶다면 리소스 소비에 대한 Docker의 FAQ입니다.

Docker가 이러한 이동을 통해 운영 비용을 절감하려고 한다고 생각하지만 이는 비활성 컨테이너를 소유하고 있지만 Docker 요금제에 대한 비용을 지불하고 싶지 않은 사람들뿐만 아니라 온라인에서 컨테이너를 찾으십시오. 이러한 이미지 중 일부는 실제로 매우 가치가 있어 쉽게 다시 만들 수 없지만 제 생각에는 더 큰 문제는 이미지를 공유하려는 경우 삭제될 걱정 없이 어떻게 이미지를 공유할 수 있을까요? 이것이 제가 여기서 다루려고 하는 핵심 질문입니다.

옵션 1: 유료 요금제 구매



이것은 가장 매력적인 옵션은 아니지만 작동합니다. 유료 플랜의 다른 특전을 누리고 적어도 지불을 중단하고 다시 비활성화될 때까지 이미지를 영구히 보존합니다.

옵션 2: Github 패키지



가장 합리적인 대안이라고 생각합니다. Github 패키지는 작년에 출시된 상당히 새로운 제품으로 모든 종류의 릴리스를 게시할 수 있습니다. 이것은 저장소에 코드를 게시하는 것과는 달리 설치 및 사용할 준비가 된 라이브 번들이며 Rubygems 및 NPM에 제출되는 종류입니다. 당연히 이것은 컨테이너 이미지로도 확장되므로 Github 패키지를 공개 및 비공개로 패키지를 게시하는 방법으로 사용할 수 있습니다.

패키지

Docker Hub에 대한 배포를 모두 건너뛰고 docker 명령이 패키지를 Github 패키지로 직접 보내도록 할 수 있습니다. 그렇게 하면 비활성 상태로 인해 패키지가 손실되는 것에 대해 걱정할 필요가 없습니다.

이 워크플로는 Github 패키지에만 게시됩니다.

name: Publish Docker image
on:
  release:
    types: [published]
jobs:
  push_to_registries:
    name: Push Docker image to Github Packages
    runs-on: ubuntu-latest
    steps:
      - name: Check out the repo
        uses: actions/checkout@v2
      - name: Push to GitHub Packages
        uses: docker/build-push-action@v1
        with:
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}
          registry: docker.pkg.github.com
          repository: my-org/my-repo/my-image
          tag_with_ref: true


이 워크플로는 Github 패키지와 Docker Hub 모두에 게시되며 이 전환 기간 동안 두 위치 모두에서 이미지를 사용하는 것이 좋습니다.

name: Publish Docker image
on:
  release:
    types: [published]
jobs:
  push_to_registries:
    name: Push Docker image to multiple registries
    runs-on: ubuntu-latest
    steps:
      - name: Check out the repo
        uses: actions/checkout@v2
      - name: Push to Docker Hub
        uses: docker/build-push-action@v1
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}
          repository: my-docker-hub-namespace/my-docker-hub-repository
          tag_with_ref: true
      - name: Push to GitHub Packages
        uses: docker/build-push-action@v1
        with:
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}
          registry: docker.pkg.github.com
          repository: my-org/my-repo/my-image
          tag_with_ref: true


약간의 주의



Github 패키지는 새로운 서비스이며 아직 많은 사람들이 컨테이너를 버리지 않았기 때문에 패키지를 영원히 보관할 뿐입니다. 그러나 페바이트의 패키지로 넘쳐나자 마자 Github는 공간이 부족한 경우 비활성 패키지도 제거하기로 결정할 수 있습니다. 그러나 가까운 장래에 대해 걱정할 필요가 없습니다.

그런 다음 다시 Github은 Microsoft의 소유이므로 무료 Azure 저장소를 사용할 수 있습니다.

결국 Docker Hub도 무제한 보존으로 이와 같이 작게 시작하여 오늘날의 큰 상태로 성장할 때까지. 따라서 저장 공간이 우리에게 무제한이라고 광고되지만 결국 사람들은 뒤에서 공간이 부족합니다.

좋은 웹페이지 즐겨찾기