본문 바로가기
DevOps/Docker

Docker(7) - 이미지 push

by 재성스 2024. 8. 27.
반응형

앞서 포스팅한 블로그에서 Docker Registry에 대해 서술했다. 이번 블로그의 내용은 Public Registry에 이미지를 push하는 방법에 대해 포스팅할 예정이다.

2024.08.20 - [DevOps] - Docker(2) - 도커를 위한 환경세팅 및 도커 레지스트리

Docker 이미지를 Registry에 push 하는 과정은 다음과 같은 단계를 따른다.

1. 이미지 태그 지정

이미지를 push하기 전에 해당 이미지를 레지스트레 적합한 태그로 지정해야한다. 태그는 레지스트리 주소, 사용자 이름, 이미지 이름, 버전으로 구성된다. 

docker tag myimage:latest myusername/myimage:latest

- 여기서 `myusername/myimage:latest`는 Docker Hub의 myusername 사용자 계정(참고 : 레지스트리 사용자계정과 일치해야함.)의 myimage라는 이름의 이미지로 태그를 설정하는 것이다. latest는 버전 태그이다.

 

2. Docker 로그인

이미지를 레지스트리에 push하기 전에, 해당 레지스트리에 로그인해야한다. 
* Docker registry 계정이 없다면, 가입 후 시도해야한다.

docker login

 위 명령어를 입력하면 사용자 이름과 비밀번호를 묻는 프롬프트가 나타난다.

 

3. 이미지 push

태그를 지정한 후, 이미지를 레지스트리에 push할 수 있다. 

docker push myusername/myimage:latest

이 명령어는 로컬 이미지를 Docker Hub의 myusername 계정의 리포지토리로 업로드한다. 

 

4. 이미지 확인

push가 완료된 후, Docker Hub 또는 개인 레지스트리에서 업로드한 이미지를 확인할 수 있다. 

 


이미지 업로드 해보기

앞서 포스팅한 블로그에서 빌드한 이미지를 레지스트리에 업로드 해보자

- 추가적으로 소스를 Docker image로 빌드하는 방법도 아래 글에서 확인 가능

2024.08.21 - [DevOps] - Docker(5) - 환경 변수

# Docker 이미지화 할 디렉토리로 이동
cd /python-docker-env

# 현재 디렉토리의 모든 파일을 하나의 이미지로 빌드
docker build -t python-env-test .

docker image

 

1. docker 이미지에 태그를 달아준다. 

# docker tag 
docker tag python-env-test {사용자ID}/python-env-test:{태그}

 

2. docker 로그인

# Docker login
docker login

 

3. 태그 지정한 이미지 레포지토리에 push하기

# 레포지토리에 push하기
docker push {사용자ID}/python-env-test:v1.0

push가 완료되면 아래와 같이 레포지토리에서 업로드한 docker image를 확인할 수 있음

4. 업로드한 docker image 다운로드 및 임시 컨테이너 실행하기

우선, 아래 명령어를 통해 현재 설치된 docker image를 모두 삭제 

# Docker image 강제로 모두 삭제
docker rmi `docker images -q` -f

# 레지스트리에서 docker를 pull 받은 후, 임시 컨테이너 생성 및 실행
docker run -t -p 12345:12345 --name pet --rm {사용자ID}/python-env-test:v1.0

- 위 명령어를 실행하여, 컨테이너가 잘 수행되는지 확인하고 `docker images`를 통해 잘 설치되었는지 확인.

 

참고로, 아래 명령어를 사용하면 docker image의 히스토리를 확인할 수 있다. 예를 들어 해당 이미지가 어떻게 생성되었는지, 어떤 레이어가 추가되었는지, 각 레이어가 언제 생성되었는지 드의 정보를 확인할 수 있다. 

반응형