Docker hub Repo에 image push

Dockefile을 통해 생성된 이미지나 docker commit을 통해 생성된 이미지를 저장하는 곳을 registry라고 한다.

Docker hub

docker hub 로그인

1. 비밀번호 로그인

2. Access token 로그인

echo 'dckr_pat_shBt1xIWK9wH0Iu-RI8eYcliff4' > access_token
> cat access_token | docker login --username howokace --password-stdin
> WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
> Configure a credential helper to remove this warning. See
> https://docs.docker.com/engine/reference/commandline/login/#credentials-store

> Login Succeeded

docker info | grep -i username
> Username: howokace

3. OTP 로그인

docker image push

본인 계정의 Repo에 생성한 이미지를 업로드하기 위해서는 본인계정을 이미지명 앞에 붙여야 docker push 수행 시 계정으로 찾아가 저장된다.

docker images
> REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
> nginx        latest    e4720093a3c1   3 weeks ago   187MB

docker image tag nginx:latest howokace/nginx:v1.0

docker images
> REPOSITORY       TAG       IMAGE ID       CREATED       SIZE
> howokace/nginx   v1.0      e4720093a3c1   3 weeks ago   187MB
> nginx            latest    e4720093a3c1   3 weeks ago   187MB

docker push howokace/nginx:v1.0
> The push refers to repository [docker.io/howokace/nginx]
> 61a7fb4dabcd: Mounted from library/nginx 
> bcc6856722b7: Mounted from library/nginx 
> 188d128a188c: Mounted from library/nginx 
> 7d52a4114c36: Mounted from library/nginx 
> 3137f8f0c641: Mounted from library/nginx 
> 84619992a45b: Mounted from library/nginx 
> ceb365432eec: Mounted from library/nginx 
> v1.0: digest: sha256:678226242061e7dd8c007c32a060b7695318f4571096cbeff81f84e50787f581 size: 1778

자동으로 만들어지는 repo는 public으로 만들어진다.

private로 만드려면 수동으로 repo를 만들어야 한다.

docker image tag > docker push

docker pull

docker pull howokace/nginx:v1.1
> v1.1: Pulling from howokace/nginx
> e1caac4eb9d2: Pull complete 
> 88f6f236f401: Pull complete 
> c3ea3344e711: Pull complete 
> cc1bb4345a3a: Pull complete 
> da8fa4352481: Pull complete 
> c7f80e9cdab2: Pull complete 
> 18a869624cb6: Pull complete 
> Digest: sha256:678226242061e7dd8c007c32a060b7695318f4571096cbeff81f84e50787f581
> Status: Downloaded newer image for howokace/nginx:v1.1
> docker.io/howokace/nginx:v1.1

docker images
> REPOSITORY       TAG       IMAGE ID       CREATED       SIZE
> howokace/nginx   v1.1      e4720093a3c1   3 weeks ago   187MB

docker image save

docker save 명령을 통해 Layer로 구성된 이미지를 *.tar 파일로 묶어 파일로 저장

해당 파일을 전달 받은 컴퓨터에서 docker load를 통해서 이미지로 등록한다.

docker image 삭제

docker hub를 통해 다운로드 받은 이미지는 종류에 따라 용량이 다름

이미지를 계속 다운로드만 받게 되면 로컬 서버의 저장 용량을 많이 차지하여 공간 부족과 같은 문제를 야기하기도 한다.

docker image save를 통해 이미지를 백업하거나 주기적으로 업무에 사용하는 이미지와 사용하지 않는 이미지를 구분하여 관리하고, 불필요한 이미지는 삭제하는 것이 좋다.

docker image rm [옵션] {이미지명[:태그] | 이미지ID}

docker rmi [옵션] {이미지명[:태그] | 이미지ID}

# 이미지 전체 삭제
docker rmi $(docker images -q)

# 특정 이미지명이 포함된 것만 삭제
docker rmi $(docker images | grep debian)

# 반대로 특정 이미지명이 포함된 것만 제외하고 모두 삭제
docker rmi $(docekr images | grep -v nginx)

# 상태가 exited 인 container를 찾아서 모두 삭제
docker rm $(docker ps --filter 'status=exited' -a -q)

Last updated