본문 바로가기

가상화/Kubernetes

[Docker] Priviate registry 구성 #1 - 설치

반응형

개요

구성환경

docker 1.6+, registry 2.7.1

구성절차

1. registry 이미지 다운로드 
2. 로컬 레지스트리 실행 
3. 이미지 업로드
4. 이미지 다운로드


1. Registry 이미지 다운로드

Usage: docker pull rgistry:2.7.1

 - 샘플 출력

shell> docker pull registry:2.7.1
2.7.1: Pulling from library/registry
486039affc0a: Pull complete
ba51a3b098e6: Pull complete
8bb4c43d6c8e: Pull complete
6f5f453e5f2d: Pull complete
42bc10b72f42: Pull complete
Digest: sha256:7d081088e4bfd632a88e3f3bcd9e007ef44a796fddfe3261407a3f9f04abe1e7
Status: Downloaded newer image for registry:2.7.1
docker.io/library/registry:2.7.1
shell> docker images
REPOSITORY                                                       TAG                 IMAGE ID            CREATED             SIZE
registry                                                         2.7.1               708bc6af7e5e        2 months ago        25.8MB

2. 로컬 레지스트리 실행

Usage: docker run -d -p 5000:5000 --restart always --name registry registry:2.7.1 

shell> docker run -d -p 5000:5000 --restart always --name registry registry:2.7.1
9fcbbe4cccc0df22f3a09b838a0597e046cdc54bc7e81244bb94b9214c59c20b
shell> docker ps
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                    NAMES
9fcbbe4cccc0        registry:2.7.1         "/entrypoint.sh /etc…"   21 seconds ago      Up 18 seconds       0.0.0.0:5000->5000/tcp   registry

3. 이미지 업로드

Usage:  docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

shell> docker pull ubuntu:18.04
18.04: Pulling from library/ubuntu
5bed26d33875: Pull complete
f11b29a9c730: Pull complete
930bda195c84: Pull complete
78bf9a5ad49e: Pull complete
Digest: sha256:bec5a2727be7fff3d308193cfde3491f8fba1a2ba392b7546b43a051853a341d
Status: Downloaded newer image for ubuntu:18.04
docker.io/library/ubuntu:18.04
shelldocker tag ubuntu:18.04 192.168.0.167:5000/ubuntu:18.04
shelldocker images
REPOSITORY                                                       TAG                 IMAGE ID            CREATED             SIZE
ubuntu                                                           18.04               4e5021d210f6        10 days ago         64.2MB
192.168.0.167:5000/ubuntu                                            18.04               4e5021d210f6        10 days ago         64.2MB
shelldocker push 192.168.0.167:5000/ubuntu
The push refers to repository [192.168.0.167:5000/ubuntu]
16542a8fc3be: Pushed
6597da2e2e52: Pushed
977183d4e999: Pushed
c8be1b8f4d60: Pushed
18.04: digest: sha256:e5dd9dbb37df5b731a6688fa49f4003359f6f126958c9c928f937bec69836320 size: 1152
shell>

** docker tag 에서 Target Image 이름은 "<레지스트리주소>:<Target_image>:[Tag]" 형식으로 지정

4. 업로드한 이미지를 다운로드

shell> docker pull 192.168.0.167:5000/ubuntu:18.04
18.04: Pulling from ubuntu
5bed26d33875: Pull complete
f11b29a9c730: Pull complete
930bda195c84: Pull complete
78bf9a5ad49e: Pull complete
Digest: sha256:e5dd9dbb37df5b731a6688fa49f4003359f6f126958c9c928f937bec69836320
Status: Downloaded newer image for 192.168.0.167:5000/ubuntu:18.04
192.168.0.167:5000/ubuntu:18.04
shell> docker images
REPOSITORY                                                       TAG                 IMAGE ID            CREATED             SIZE
192.168.0.167:5000/ubuntu                                        18.04               4e5021d210f6        10 days ago         64.2MB

 

* 이미지 다운로드중 아래와 같은 오류가 발생할 경우

- 클라이언트에서 docker pull 명령어로 registry의 이미지를 받을때 기본적으로 클라이언트는 접속을 https로 접속하는데, 현재 registry에 https 프로토콜이 구성되어 있지 않아서 발생하는 오류이다.  http 프로토콜에서 이미지를 받을수 있도록 클라이언트의 /etc/docker/daemon.json 파일을 수정한다.

 증상)

shell> docker pull 192.168.0.167:5000/ubuntu:18.04
Error response from daemon: Get https://192.168.0.167:5000/v2/: http: server gave HTTP response to HTTPS client

 단계 1) /etc/docker/daemon.json 파일에 아래 내용을 추가한다.(파일이 없을 경우 생성)

- http 프로토콜을 이용하여 접속하고자 하는 레지스트리를 등록한다.

{
   "insecure-registries": ["192.168.0.167:5000"]
}

 단계 2) 내용 추가후 docker를 재실행 해준다.

shell> systemctl restart docker

 

Private registry 구성 #2 - TLS 구성

Private registry 구성 #3 - 인증 구성

반응형

'가상화 > Kubernetes' 카테고리의 다른 글

[kubernetes] NFS 구성  (0) 2020.04.01
[Docker] Priviate registry 구성 #2 - TLS 구성  (0) 2020.03.31
[kubernetes] TroubelShooting  (0) 2020.03.27
[Docker] Image Build  (0) 2020.03.25
[kubernetes] 웹 UI(대시보드)  (0) 2020.03.23