ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • <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

    댓글

Designed by Tistory.