본문 바로가기

Container/Docker

09. Docker Image 생성 (기존이미지 사용)

이미지를 업로드하는 방법은 기존에 이미 존재하는 이미지를 이용하는 방법과
 
Dockerfile 을 사용하여 업로드 하는 방식이 있다.
 
 
official repositories
 
오피셜 레포지토리는 root 네임 스페이스에 위치한 Repo 들로 이런 Repo 에 속해있는 이미지에
 
접근할 경우에는 사용자 계정이 필요하지 않다.
 
위의 Nginx 도 오피셜 레포지토리에 속한 이미지이다.
 
 
docker image tag
 
이미지에 새로운 태그를 부여하는 경우  docker image tag 명령을 사용한다.  
 
간단히 아래 명령과 같이 하면 되겠다.
 
$ docker image tag --help
Usage:    docker image tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
 
$ docker image tag nginx kin3303/nginx
$ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql                   latest              a8a59477268d        2 weeks ago         445MB
mongo                 latest              14c497d5c758        2 weeks ago         366MB
kin3303/nginx       latest              ae513a47849c        3 weeks ago         109MB
nginx                   latest              ae513a47849c        3 weeks ago         109MB
 
동작을 완료하고 docker image ls 로 현재 가용한 이미지의 목록을 보면
 
ae513a47849c 라는 이미지의 ID 에 대해 
 
kin3303/nginx 라는 REPOSITORY 에 latest 태그로 태깅을 한 것을 확인할 수 있다.
 
 
docker image push
 
위 작업은 local 에서의 작업이기 때문에 kin3303/nginx 의 이미지가 도커 레지스트리에 업로드 된 것은 아니다.
 
실제로 업로드는 계정에 login 이 필요하며 git push 와 같이 간단히 docker image push 명령을 통해 업로드하면 된다.
 
$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: kin3303    
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
 
Login Succeeded
 
$ docker image push kin3303/nginx
The push refers to repository [docker.io/kin3303/nginx]
7ab428981537: Mounted from library/nginx
82b81d779f83: Mounted from library/nginx
d626a8ad97a1: Mounted from library/mysql
latest: digest: sha256:e4f0474a75c510f40b37b6b7dc2516241ffa8bde5a442bde3d372c9519c84d90 size: 948
 
그리면 계정에  kin3303/nignx 라는 Repo 가 하나 생성되어 있는 것을 알 수 있다.
 
 
이제 여기에 더불어 다른 이름으로 태깅하고 올리려면 아래와 같이 하면 된다.
 
docker image tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
 
기존에 latest 를 올린 것과 차이가 없으므로 설명은 생략한다.
 
$ docker image tag kin3303/nginx:latest kin3303/nginx:testing
$ docker image push kin3303/nginx:testing
The push refers to repository [docker.io/kin3303/nginx]
7ab428981537: Layer already exists
82b81d779f83: Pushed
d626a8ad97a1: Pushed
testing: digest: sha256:e4f0474a75c510f40b37b6b7dc2516241ffa8bde5a442bde3d372c9519c84d90 size: 948
 
 
 
 

'Container > Docker' 카테고리의 다른 글

11. Docker Container Life Cycle  (0) 2020.01.14
10. Docker Image 생성 (도커파일)  (0) 2020.01.14
08. Docker Image Inspect  (0) 2020.01.14
07. Docker Image  (0) 2020.01.14
06. Docker Run  (0) 2020.01.14