Skip to content

Registry

: 컨테이너 이미지와 관련된 아티팩트를 저장하고 배포하는 서비스


Docker hub

:Docker에서 제공하는 Registry Service

  1. Docker Hub 가입
  2. Repository 생성
    1
  3. docker login
    # docker login --username {your_username}
    # 여기서 username이란, 도커 허브 name을 뜻함
    docker login --username ysheee
    
    2
  4. docker image 생성
    docker pull hello-world
    
  5. docker image tag 추가 도커 허브 내의 Repository에 이미지를 배포하기 위해서는 이미지 이름이 다음과 같은 형식이어야 한다. 3
    따라서, 이미지에 tag를 부여해주어야 한다.
    # docker image tag {image_name} {new_image_tag}
    docker image tag hello-world ysheee/test:v1
    
    docker image ls 또는 docker images 명령어를 통해 이미지 목록을 확인하거나 docker image ls --filter reference={image_name} --filter reference={image_name} 명령어를 통해 해당 이미지 정보 확인 4
    ========== ❗🤯
    이미지 정보를 보면 마치 이미지가 각각 13.3kB씩 용량을 차지하고 있는 것처럼 보인다. 하지만 docker system df를 확인해보면, 둘은 같은 이미지 레이어를 공유하므로 13.3kB만 사용중이다.
    5
    이처럼 이미지는 여러 tag를 가질 수 있고, 서로 같은 이미지를 공유한다.
    IMAGE ID를 통해서도 서로가 같은 이미지임을 확인할 수 있다.
    ==========
  6. 도커 허브로 이미지 배포
    # docker push {image_name}
    docker push ysheee/test:v1
    
    6

Local Registry

registry-hub : 도커 이미지를 저장하고, 배포할 수 있는 오픈소스 애플리케이션. GUI는 제공되지 않음

  1. registry 컨테이너 실행
    # docker run -d -p 5000:5000 --name {your_image_name} registry
    docker pull registry:latest
    docker run -d -p 5000:5000 --name my_registry registry
    
  2. 도커 이미지 생성 및 Tag 추가
    docker pull hello-world
    docker tag hello-world localhost:5000/start/hello-world:v1
    
    7
  3. 이미지 배포
    docker push localhost:5000/start/hello-world:v1
    
❗🤯 Domain name 추가
# hosts 파일 확인
cat /etc/hosts

# 도메인 주소 쌍 추가
echo $'\n127.0.0.1 local.registry' | sudo tee -a /etc/hosts

# hosts 파일 확인
cat /etc/hosts

# 이미지 태그 추가 및 배포
docker image tag hello-world local.registry:5000/start/hello-world:v1
docker push local.registry:5000/start/hello-world:v1
확인 필요
# linux
/etc/docker/daemon.json에 {"insecure-registries":["registrly.local:5000"]} 추가
# Mac (Docker Desktop)
Preference -> Daemon -> insecure-registries -> registry.local:5000 추가

service docker restart
docker info

Quote