5.2.도커 허브에 직접 빌드한 이미지 푸시하기

도커 로그인

docker login --username <username>

001)  docker login --username woogiereal
002) Password:
003) Login Succeeded

기존 이미지에 새로운 이미지 참조를 부여

docker image tag <image_name> <username>/<image_name>:<version>

  • 이미지 참조에 계정 이름이 지정되어야 레지스트리에 푸시할 수 있다
  • 이미지는 또한 유일 식별자를 갖는다.
  • 이 식별자를 통해 여러 개의 이미지 참조가 같은 이미지를 가리키고 있는지도 알 수 있다.
001)  docker image tag image-gallery woogiereal/image-gallery:v1
  • 001: 이 이미지는 두 개의 이미지 참조를 갖게 됐다.

이미지의 이미지 참조 목록을 확인하라.

docker image ls --filter reference=<image_name> --filter reference='*/<image_name>'

001)  docker image ls --filter reference=image-gallery --filter reference='*/image-gallery'
002) REPOSITORY                 TAG       IMAGE ID       CREATED      SIZE
003) image-gallery              latest    a6d96205f407   2 days ago   26.2MB
004) woogiereal/image-gallery   v1        a6d96205f407   2 days ago   26.2MB
  1. 003~004: 이미지 ID가 같은 것으로 보아 두 이미지 참조가 같은 이미지를 가리키는 것을 알 수 있다.
  2. 003~004: 두 이미지 참조 모두 논리적 용량이 261MB로 나온다. 그러나 물리적으로는 같은 이미지 레이어를 공유한다.

이미지를 레지스트리에 푸시하라.

docker image push <username>/<image_name>:<version>

  • 도커 레지스트리도 로컬 컴퓨터에서 동작하는 도커 엔진과 같은 방식으로 이미지 레이어를 다룬다.
  • 이미지를 푸시할 때 실제로 업로드 대상이 되는 것은 이미지 레이어다.
  • 레지스트리에서도 캐시상에 레이어 해시와 일치하는 레이어가 없을 경우에만 실제로 업로드가 이뤄진다.
  • 최적화 된 Dockerfile 스크립트는 빌드 시간, 디스크 용량을 넘어 네트워크 대역폭까지 영향을 미치는 중요한 요소다.
001)  docker image push woogiereal/image-gallery:v1
002) The push refers to repository [docker.io/woogiereal/image-gallery]
003) 345c361aeca5: Pushed
004) 53e8648240b5: Pushed
005) 4ea5c639070d: Pushed
006) 9c3acd530755: Pushed
007) c087aa3a9887: Mounted from diamol/base
008) 20312b574584: Mounted from diamol/base
009) v1: digest: sha256:0695c62aa490a3d1bb74799d7987e2274dfc073709f083f0139519cb8e0e52a1 size: 1573

도커 허브에 새로 푸시된 이미지에 대한 도거 허브 웹 페이지 URL을 출력하라

echo "https://hub.docker.com/r/<username>/<image_name>/tags"

001)  echo "https://hub.docker.com/r/woogiereal/image-gallery/tags"
002) https://hub.docker.com/r/woogiereal/image-gallery/tags

links

social