DockerHub 이미지는 버전 태그가 붙어 있어도 덮어 씁니다.

3180 단어 도커DockerHub

소개


  • DockerHub등의 이미지에 대해서 「버전의 태그를 지정해도 이미지가 바뀌는 것은 없다」라고 하는 것은 착각입니다.
  • latest 그럼 괜찮아」는 아닙니다
  • 오히려 상당한 이미지로 덮어쓰기가 이루어지고 있습니다.
  • 공식 이미지에서도 상당히 변경되었습니다.

  • 이 기사에서는 실제로 공식 이미지 변경 내역을 수집하는 GitHub 리포지토리에서 살펴 보겠습니다.

    이미지 변경 내역을 수집하는 GitHub 리포지토리에서 볼 수 있습니다.



    DockerHub의 웹 사이트에서는 변경 일시 정도밖에 볼 수 없지만,
    docker-library/repo-info라는 리포지토리에서 공식 이미지 변경 내역을 볼 수 있습니다.

    변경 내역 보기


  • repo-info/repos/ 아래에서 검사 할 이미지 이름의 디렉토리를 찾습니다
  • 그 아래의 remote 또는 local 안에있는 태그 이름의 md 파일을보십시오
  • local 는 pull 실행으로 차분을 검지했을 때에 수집한 것으로, remote 는 api 로 변경을 검지했을 때의 것입니다. 어쩌면 정기 실행으로 polling하고 있다고 생각합니다. (거의 차이는 없을 것인가?)

  • 「History」버튼으로 커밋 로그로부터 변경을 쫓습니다
  • 이미지의 sha가 md 파일에 기록되어 있으므로, 그것을 사용해 낡은 것을 pull 할 수도 있습니다. (지워지지 않으면)


  • 예를 들어, node:11.15.0-stretch-slim 이미지의 변경 내역을 살펴봅니다.



    docker-library/repo-infonode/remote/11.15.0-stretch-slim.md 를 살펴봅니다.

  • 생각보다 많이 업데이트되었습니다


  • Jun5 2019의 변경을 살펴보면 새 파일 추가나 Entrypoint 변경이 된 것 같습니다.

  • 둘 다 실행하여 추가 파일을 살펴 보겠습니다.

  • 추가된 것은 docker-entrypoint.sh
  • 그건 그렇고, 이번에는 Dockerfile 자체가 변경되었으므로 노드의 dockerfile 저장소


  • 그 밖에 어떤 변화가 있는가



    완전하게 이미지에 의합니다만, 다음의 경우가 많다고 합니다.
  • 보안 업데이트
  • 시맨틱 버전으로 마이너 버전까지 지정하고 있는 태그의 경우, 패치 업데이트로 덧쓰기
  • 2.0 태그 이미지 내용이 2.0.0 에서 2.0.1를 대체

  • 시맨틱 버전으로 메이저 버젼까지 지정하고 있는 태그의 경우, 마이너 업데이트로 덧쓰기된다
  • 2 태그 이미지 내용이 2.0.3 에서 2.1.0를 대체


  • 요약


  • "latest 이외의 태그를 지정하면 이미지가 다시 작성되지 않습니다."는 오해입니다.
  • 다시 작성하여 어려움이 있다면 레지스트리에서 이미지를 관리하는 것이 좋습니다.
  • 좋은 웹페이지 즐겨찾기