본문 바로가기

Docker

도커 / 이미지 레지스트리

이미지 레지스트리

이미지레지스트리는 도커 이미지를 저장하기 위한 저장소이다. 이를 통해 개인이나 팀이 이미지를 다른사람과 공유하거나 필요한 이미지를 다운받을 수 있음

 

도커허브랑 깃허브랑 비슷함

도커허브는 이미지를 공유하는 저장소이다. 소스코드를 사용하여 만들어진 애플리케이션과 애플리케이션을 실행시킬 수 있는 환경이 있는 이미지를 공유하는 것

기능

  1. 이미지 공유
  2. 이미지 검색
  3. 이미지 버전 관리
  4. 보안
  5. 파이프라인

이미지가 저장될 수 있는 곳

  1. Host machine의 local storage
  2. online저장소 예시 : private registry, public registry

docker run 이미지명

  1. 로컬 스토리지에 해당 이미지가 있는지 확인함 예시 : docker 실행하는 Host os의 특정 디렉토리를 의미함
  2. 로컬 스토리지에 이미지가 없다면 온라인 레지스트리에서 이미지를 로컬로 다운받음
  3. 다운받은 로컬 스토리지의 이미지를 통해 컨테이너를 실행함

온라인 레지스트리

  1. 프라이빗 레지스트리 특정 네트워크만 접근 가능, ex 사내망 등
  2. 퍼블릭 레지스트리 모든 네트워크에서 접근 가능 ex docker hub

개인 레지스트리 만들기

  1. 레지스트리 생성 HARBOR, docker private
  2. 퍼블릭 클라우드에서 레지스트리 생성 AmazonECR등

이미지 네이밍 규칙

docker run -d -p 80:80 --name hellonginx nginx

 

원래는 이미지를 다운받을 때 버전 정보를 입력해야하지만 이전에 입력한 명령어에서는 버전정보가 없었다.

이는 default로 정해놓은 버전이 있는 것이다.

레지스트리주소/프로젝트명/이미지명:이미지태그

devwiki.com/myProject/MyNginx:2.1.0-alpine
  1. 레지스트리주소는 기본값이 docker.io이다.
  2. 프로젝트명은 폴더명이라고 생각하면 된다. docker hub는 가입한 사용자의 계정명이 프로젝트명이 된다
  3. 이미지태그는 이미지 버전이며 숫자, 영문 사용이 가능하다.

nginx는 프로젝트명도 생략했는데

 

docker는 DOCKER OFFICIAL IMAGE로 선정한 image는 library가 기본값으로 적용된다.

docker run -d -p 80:80 --name hellonginx nginx

docker run -d -p 80:80 --name hellonginx docker.io/library/nginx:latest

인 것이다.