-
<Docker> local(private) registry 구축Flower in my ops/CI\CD 2020. 11. 25. 12:30
Private Registry
더보기[vagrant docker]$ docker pull registry:latest latest: Pulling from library/registry cbdbe7a5bc2a: Pull complete 47112e65547d: Pull complete 46bcb632e506: Pull complete c1cc712bcecd: Pull complete 3db6272dcbfa: Pull complete Digest: sha256:8be26f81ffea54106bae012c6f349df70f4d5e7e2ec01b143c46e2c03b9e551d Status: Downloaded newer image for registry:latest docker.io/library/registry:latest [vagrant docker]$ docker images registry REPOSITORY TAG IMAGE ID CREATED SIZE registry latest 2d4f4b5309b1 5 months ago 26.2MB [vagrant docker]$ docker run --name flower-registry \ > -d --restart=always \ > -p 5000:5000 \ > -v /app/docker/registry:/var/lib/registry/docker/registry/v2 \ > registry:latest 2e6c6c78d3cacdf1fda8e37d5cf3f3f6f33a69dd9cbf391a7c44a1a1bd4bcbbd [vagrant docker]$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2e6c6c78d3ca registry:latest "/entrypoint.sh /etc…" 3 seconds ago Up 2 seconds 0.0.0.0:5000->5000/tcp flower-registry [vagrant docker]$ curl {IP}:5000/v2/_catalog {"repositories":[]} [vagrant docker]$ curl {IP}:5000/v2/_catalog?n=10 {"repositories":[]}
Pull / Push
더보기[vagrant docker]# docker pull centos Using default tag: latest latest: Pulling from library/centos 3c72a8ed6814: Pull complete Digest: sha256:76d24f3ba3317fa945743bb3746fbaf3a0b752f10b10376960de01da70685fbd Status: Downloaded newer image for centos:latest docker.io/library/centos:latest [vagrant docker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 0d120b6ccaa8 3 months ago 215MB registry latest 2d4f4b5309b1 5 months ago 26.2MB [vagrant docker]# docker tag centos {IP}:5000/centos [vagrant docker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE {IP}:5000/centos latest 0d120b6ccaa8 3 months ago 215MB centos latest 0d120b6ccaa8 3 months ago 215MB registry latest 2d4f4b5309b1 5 months ago 26.2MB [vagrant docker]# vi Dockerfile [vagrant docker]# docker build -t {IP}:5000/test-centos:1.0 . Sending build context to Docker daemon 4.096kB Step 1/3 : FROM centos ---> 0d120b6ccaa8 Step 2/3 : MAINTAINER username <email@gmail.com> ---> Running in 50dca7a06e82 Removing intermediate container 50dca7a06e82 ---> aa0e4684d221 Step 3/3 : CMD echo 'Test docker pull and push' ---> Running in aec4066f3aac Removing intermediate container aec4066f3aac ---> 0fa752d7395a Successfully built 0fa752d7395a Successfully tagged {IP}:5000/test-centos:1.0 [vagrant docker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE {IP}:5000/test-centos 1.0 0fa752d7395a 4 seconds ago 215MB {IP}:5000/centos latest 0d120b6ccaa8 3 months ago 215MB centos latest 0d120b6ccaa8 3 months ago 215MB registry latest 2d4f4b5309b1 5 months ago 26.2MB [vagrant docker]# docker push {IP}:5000/centos The push refers to repository [{IP}:5000/centos] Get https://{IP}:5000/v2/: http: server gave HTTP response to HTTPS client [vagrant docker]# docker push {IP}:5000/test-centos:1.0 The push refers to repository [{IP}:5000/test-centos] Get https://{IP}:5000/v2/: http: server gave HTTP response to HTTPS client [root@ftnet05 app]# sudo vi /etc/docker/daemon.json ###--------------- { "insecure-registries": ["{IP}:5000", "registry-web"] } ###--------------- [vagrant app]# docker push {IP}:5000/centos The push refers to repository [{IP}:5000/centos] cc9d18e90faa: Pushed 0c2689e3f920: Pushed 47dde53750b4: Pushed latest: digest: sha256:1d7b639619bdca2d008eca2d5293e3c43ff84cbee597ff76de3b7a7de3e84956 size: 943 [vagrant app]# curl http://localhost:5000/v2/_catalog {"repositories":["centos"]}
- /etc/docker/daemon.json에 registry 등록 후 push
Registry WEB
더보기[vagrant app]$ vi /app/reg_web/config.yml ###--------------- registry: url: http://{REGISTRY_IP or REGISTRY_NAME}:5000/v2 name: {REGISTRY_IP or REGISTRY_NAME}:5000 readonly: false auth: enabled: false ###--------------- [vagrant app]$ docker run -it -d \ > -p 8080:8080 \ > --name registry-web \ > --link flower-registry \ > -v /app/reg_web/config.yml:/config/config.yml:ro \ > hyper/docker-registry-web 61f9ae1c3fb1ad7605e85db62b6c52e010d5ab5164733a4b0d2e4e3303fa265c [vagrant app]$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 61f9ae1c3fb1 hyper/docker-registry-web "start.sh" 8 minutes ago Up 8 minutes 8080:8080 registry-web 2b497b761d0f registry:latest "/entrypoint.sh /etc…" 21 minutes ago Up 21 minutes 5000:5000 flower-registry [vagrant app]$ curl {IP}:5000/v2/_catalog {"repositories":["ubuntu"]} [vagrant app]$ curl http://{IP}:8080/ <!DOCTYPE html> <!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]--> <!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]--> <!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]--> <!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]--> <!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"><!--<![endif]--> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>Web Registry - Repositories</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="shortcut icon" href="/assets/favicon-9ef27019cc7a636e29ecc851528f716e.ico" type="image/x-icon"> <link rel="apple-touch-icon" href="/assets/apple-touch-icon-c915103363017d14cea9c2a46ea12166.png"> <link rel="apple-touch-icon" sizes="114x114" href="/assets/apple-touch-icon-retina-21d524e96ee946f16c9b8fb4ea0c3f6e.png"> <link rel="stylesheet" href="/assets/application-bcba69f87dc8e1d6f0ee0e95bcd032dc.css"/> <script src="/assets/application-d840da5a269b3cd86c1420eeb56b3e88.js" type="text/javascript" ></script> </head> <body> <!-- navbar --> <nav class="navbar navbar-default" role="navigation"> <div class="container-fluid"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> <span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span> </button> <a href="/" class="navbar-brand">Web Registry</a> </div> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <ul class="nav navbar-nav navbar-right"> </ul> </div> </div> </nav> <div class="container"> <div class="row"> <ul class="breadcrumb"> <li class="active">Home</li> </ul> <div class="page-header"> <h2>Repositories</h2> </div> <div class="col-md-8"> <dl> <dt>Registry</dt> <dd>localhost:5000</dd> </dl> <table class="table table-bordered"> <tr><th>Repository</th><th>Tags</th></tr> <tr> <td> <a href="/repo/tags/ubuntu">ubuntu</a> </td> <td> 1 </td> </tr> </table> </div> </div> </div> </body> </html>
- 브릿지(default) 모드에서는 --link {REGISTRY_CONTAINER}
- 호스트 모드에서는 --net host 그리고 방화벽 확인
'Flower in my ops > CI\CD' 카테고리의 다른 글
<Docker> Nginx Image 생성 (0) 2020.12.01 <Docker> 명령어 (0) 2020.11.30 <Docker> docker-compose로 한번에 구축 (0) 2020.11.30 <CentOS7> Docker ce & Docker compose 설치 (0) 2020.11.25