도커 로그인
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
- 003~004: 이미지 ID가 같은 것으로 보아 두 이미지 참조가 같은 이미지를 가리키는 것을 알 수 있다.
- 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