도커 허브를 통해서
이미지 다운로드 및 업로드는
어떻게 할까?
Docker Hub 가입하기
--
이때 Username에 작성하는 내용이 프로젝트 명이 된다.
--
도커 허브에서 이미지 검색 후 살펴보는 방법
--
nginx 이미지를 검색해 보자.
공식 마크가 있는 것이 Library 프로젝트에서 제공하는 도커 오피셜 nginx 이미지이다.
이전에 항상 사용했던 nginx 이미지가 바로 해당 이미지를 다운로드하여서 사용했던 것이다.
밑에 내려보면 Verified Publisher 마크가 있는 이미지도 존재한다.
인증 마크 종류
- Docker Official Image = 도커가 직접 관리하는 이미지
- Verified Publisher = 어느 정도 규모가 있는 회사에서 자체적으로 인증한 이미지
이미지를 클릭하여 상세 페이지 보기
Tags 탭에 가보면
해당 nginx 이미지의 버전 정보도 확인할 수 있다.
태그에 "stable"이라고 붙여져 있는 이미지는 안정적인 버전이라고 생각하면 된다.
"alpine"이라고 붙여져 있는 것은 해당 이미지를 만들기 위해서 베이스 이미지로 사용했던 OS의 버전 이미지를 의미한다.
"slim"이 붙여져 있는 것은 프로그램 실행에 필요한 것들만 남기고 나머지는 제거한 이미지로 용량이 적은 버전이다.
(실사용하기에는 "slim"은 불편할 수 있다.)
상단에 Repositories를 클릭하면 내 이미지 저장소로 이동한다.
Docker Hub는 기본적으로 무료로 사용할 수 있지만
특정 IP에서 6시간에 100번, 로그인한 사용자는 6시간에 200번 다운로드가 가능하고
하나의 계정당 하루에 5,000번 다운로드의 제한이 있다.
--
Docker Hub의 이미지를 다운로드 및 업로드하기
--
로컬 스토리지(컴퓨터)로 이미지 다운로드 명령어 형식
docker pull {이미지명}
다른 사람의 이미지인 testrepo에 있는 simple-web:1.0 이미지를 다운로드하는 명령어
docker pull testrepo/simple-web:1.0
로컬 스토리지의 이미지명에 대한 추가 명령어 형식 (새로운 이미지명을 추가로 만드는 명령어)
docker tag {기존이미지명} {추가할이미지명}
기존의 이미지명을 변경하는 것이 아니라
기존의 이미지명은 그대로 가지고 있으면서 또 다른 이름을 지어주는 것으로
해당 이미지는 두 개의 이미지명을 가지게 되는 것이다.
다운로드한 이미지를 내 Docker Hub에 업로드하기 위해 이미지명 변경하는 명령어
docker tag testrepo/simple-web:1.0 (레지스트리계정명)/my-simple-web:0.1
docker tag testrepo/simple-web:1.0 anijy/my-simple-web:0.1
기존에 다운받은 이미지와 이미지 명을 변경한 이미지 모두 IMAGE ID가 동일한 것을 볼 수 있다.
IMAGE ID는 고유한 ID인데 같다는 것은 도일한 이미지를 가리키고 있다는 것을 의미하고
실제로 파일이 하나만 존재한다는 의미이기도 하다.
즉, 하나의 이미지에 여러 개의 이름을 추가할 수 있다
이미지 명을 변경하는 이유는 여러 이유가 있지만
위에서 변경한 이유는
이미지를 업로드할 때 이미지 명에 있는 프로젝트 명으로 업로드가 자동으로 이루어진다.
그래서 내 Docker Hub에 업로드하기 위해서 프로젝트 명을 내 도커 저장소로 변경해 준 것이다.
즉, 업로드를 하고 싶은 계정의 이름으로 변경해야 한다.
Docker Hub에 이미지 업로드하는 명령어 형식
docker push {이미지명}
변경한 이미지를 업로드하는 명령어
docker push anijy/my-simple-web:0.1
만약 업로드 진행 중에
"denied: requested access to the resource is denied"라고 에러가 나면서 종료가 되는 것은
Docker Hub에 로그인을 하지 않았을 경우에 발생하는 에러이다.
Docker Hub에 이미지를 업로드할 때에는 업로드할 계정의 인증 정보가 필요하다.
즉, 아무나 내 Docker Hub 레지스트리에 이미지를 업로드할 수 있으면 안 되기 때문에
Docker Hub에 로그인을 하여 인증을 해주고 업로드를 해줘야 한다.
--
Docker Hub에 로그인하는 방법
--
Docker Hub에 로그인하는 방법
- Docker Desktop 프로그램에서 로그인하기
- 터미널을 통해서 로그인하기
Docker Desktop에서 로그인하는 방법은
Docker Desktop 프로그램을 설치하여 해당 프로그램을 연다음 로그인을 하면 된다.
터미널을 통해서 로그인하는 방법은
로그인 명령어를 작성하여 로그인 정보를 입력해 주면 된다.
이미지 레지스트리 인증 정보 생성하는 명령어
docker login
로그인 명령어를 하면
스토리지(저장소)의 특정 공간에 인증 정보(파일)가 생성된다.
인증 정보가 저장되는 곳은 OS마다 다를 수 있지만
일반적으로 .docker 폴더에 config.json 파일로 저장된다.
그리고 도커 로그아웃 명령어를 사용하면 해당 인증 정보 파일은 삭제된다.
이미지 레지스트리 인증 정보 삭제 명령어 (도커 로그아웃)
docker logout
+
로컬 스토리지의 이미지 삭제 명령어
docker image rm {이미지명}
--
참고 및 출처
'Docker' 카테고리의 다른 글
이미지를 만드는(저장) 방법 [ image commit ] (+명령어) (0) | 2024.06.18 |
---|---|
이미지의 레이어 (Layer) (feat. 컨테이너의 레이어) (0) | 2024.06.17 |
이미지 레지스트리 (feat. Docker Hub) (0) | 2024.06.15 |
컨테이너의 Lifecycle(생명주기) 정리 (+명령어) (0) | 2024.06.14 |
다른 사용자의 이미지를 다운로드하기 (+ Env 덮어씌우기) (0) | 2024.06.13 |