이 글은 인프런의 개발자를 위한 쉬운도커(데브위키) 강의를 수강하고 개인적으로 정리하는 글임을 알립니다.


이미지 레지스트리

도커 이미지 레지스트리(Docker Image Registry)는 도커 이미지들을 저장하고 관리하는 중앙 저장소 역할을 하는 서비스이다. 도커는 애플리케이션을 패키징한 이미지를 생성한 후, 이 이미지를 레지스트리에 저장하고, 필요할 때 해당 이미지를 다운로드하여 컨테이너를 실행한다.

  • 퍼블릭 레지스트리
    -누구나 접근할 수 있는 레지스트리로, 가장 대표적인 퍼블릭 레지스트리는 Docker Hub이다.
    -Docker Hub에는 수많은 공식 이미지(Nginx, MySQL, Redis 등)와 커뮤니티가 만든 이미지를 제공하며, 무료로 사용할 수 있다.

  • 프라이빗 레지스트리
    -조직이나 개인이 비공개로 운영하는 레지스트리로, 사내 애플리케이션이나 민감한 데이터를 포함한 이미지를 저장할 수 있다.
    -Docker Hub도 유료로 프라이빗 레지스트리를 제공하며, AWS ECR, Google Container Registry(GCR), Harbor 등 다양한 프라이빗 레지스트리 서비스가 있다.
    -프라이빗 레지스트리는 접근 권한이 제한되어 있어, 보안이 중요한 이미지 관리에 사용된다.

 

 

 

1. docker run nginx 명령 실행

  • 사용자가 docker run nginx 명령을 실행하면 도커는 Nginx 이미지를 기반으로 컨테이너를 생성하고 실행하려고 한다.

2. 로컬 스토리지에서 이미지 검색

  • 도커는 먼저 호스트 머신의 로컬 스토리지에 Nginx 이미지가 이미 있는지 확인한다. 만약 이미지가 로컬에 존재하면 해당 이미지를 사용하여 컨테이너를 실행한다.

3. 퍼블릭 또는 프라이빗 레지스트리에서 이미지 다운로드

  • 로컬에 이미지가 없다면, 도커는 퍼블릭 레지스트리(예: Docker Hub) 또는 프라이빗 레지스트리에서 Nginx 이미지를 다운로드한다. 일반적으로 Docker Hub와 같은 퍼블릭 레지스트리에서 이미지를 가져온다.

4. 컨테이너 실행

  • 이미지가 준비되면 도커는 이 이미지를 기반으로 컨테이너를 생성하고 실행한다. 이때 컨테이너는 호스트 운영체제(OS) 위에서 동작하게 된다.

 

  • 레지스트리 주소는 도커 허브를 사용할 때는 생략 가능하다.
  • 도커허브에서 공식적으로 지원하는 이미지는 프로젝트명 또한 생략 가능하다.
  • 이미지 태그를 생략하면 자동으로 latest가 붙고, 이는 최신 버전을 가리킨다.

 

Docker tag

docker tag 명령어는 기존 이미지에 새로운 이름이나 태그를 추가하는 데 사용된다.
이미지를 복사하지 않고 참조를 추가하는 방식으로 효율적으로 관리할 수 있다.
이를 통해 레지스트리에 푸시하거나 버전 관리를 쉽게 할 수 있다.
docker tag [SOURCE_IMAGE] [TARGET_IMAGE]​