-->

솔직히 도커는 고래이미지가 더 귀엽지 않나...쩝

[Docker] docker container commit, push

 

도커 기능의 핵심은 이 컨테이너를 이용해 이미지화하고 해당 이미지를 형상 관리하여 사용할 수 있는 데 있다.

따라서 매번 컨테이너를 만들고 삭제할 수 없으니 작업해놓은 컨테이너를 이미지화하여 repository에 백업해보도록 하자.

여기서 docker의 commit이란, container에서 image를 만들어 백업하는 개념이라고 생각하면 이해하기 쉽다.

따라서 docker hub계정이 없더라도 commit만 실행하면 새로운 이미지가 컨테이너에 생성된다.

 

#실행중인 도커 컨테이너 확인
[minggu92@cloud ~]$ docker ps -a
CONTAINER ID   IMAGE      COMMAND        CREATED      STATUS      PORTS                                   NAMES
ebf51df9efd8   centos:7   "/sbin/init"   4 days ago   Up 4 days   0.0.0.0:1002->22/tcp, :::1002->22/tcp   centos_test

#전체 이미지 확인
[minggu92@cloud ~]$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
centos       7         eeb6ee3f44bd   6 months ago   204MB

현재 centos7 버전에 ssh 작업과 포트 매핑을 해둔 상태다.  해당 이미지를 commit 해보자.

 

1. docker hub 회원가입 

 https://hub.docker.com

 

Docker Hub Container Image Library | App Containerization

We and third parties use cookies or similar technologies ("Cookies") as described below to collect and process personal data, such as your IP address or browser information. You can learn more about how this site uses Cookies by reading our privacy policy

hub.docker.com

 

2. 새로운 repository 생성

repository를 먼저 만들어도 되고 아니면 터미널에서 명령어로 만들 수 있다. 

test라는 이름의 repository를 만들고 push는 두 가지 형태로 진행해본다.

 

3. docker login

#도커 로그인
#docker login -u [id]와 같음
[minggu92@cloud ~]$ 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: minha1002
Password:
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

 

4. docker commit [containerID] [dockerhubID]/[imageName]

#도커 커밋 
[minggu92@cloud ~]$ docker commit -p ebf51df9efd8 minha1002/centos_ssh
sha256:----

[minggu92@cloud ~]$ docker images
REPOSITORY             TAG       IMAGE ID       CREATED         SIZE
minha1002/centos_ssh   latest    38f3bf1e5b67   7 minutes ago   447MB
centos                 7         eeb6ee3f44bd   6 months ago    204MB

docker hub에 올릴 이미지를 만들어보자.

centos_ssh라는 이름의 이미지가 생성되었다.

태그를 안달았는데 1.0 이런식으로 태깅을 하는게 좋다

yum 업데이트 받고 ssh 하나 설정했을 뿐인데 용량이 447mb가 돼버렸다..

 

5. docker push

#해당 이미지 푸쉬
[minggu92@cloud ~]$ docker push centos_ssh:latest
The push refers to repository [docker.io/library/centos_ssh]
ee37d0672928: Preparing
174f56854903: Preparing
denied: requested access to the resource is denied

엥 에러가 발생했다.

docker push를 할 때 이미지 이름이 로그인한 계정과 꼭 일치해야 한다.

# docker hub에 만들어둔 repository
[minggu92@cloud ~]$ docker push minha1002/test
Using default tag: latest
The push refers to repository [docker.io/minha1002/test]
ee37d0672928: Mounted from minha1002/centos_ssh
174f56854903: Mounted from minha1002/centos_ssh
latest: digest: sha256:6b17acd72ce6e75f262b69728a5b7960cc09a4bfbdd6617a57b5df538504348f size: 741

# 생성한 이름으로 push
[minggu92@cloud ~]$ docker push minha1002/centos_ssh
Using default tag: latest
The push refers to repository [docker.io/minha1002/centos_ssh]
ee37d0672928: Pushed
174f56854903: Pushed
latest: digest: sha256:6b17acd72ce6e75f262b69728a5b7960cc09a4bfbdd6617a57b5df538504348f size: 741

 

6. 확인

 

반응형

+ Recent posts