반응형
개요
구성환경
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 shell> docker tag ubuntu:18.04 192.168.0.167:5000/ubuntu:18.04 shell> docker 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 shell> docker 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
반응형
'가상화 > 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 |