zoukankan      html  css  js  c++  java
  • docker 搭建私有 docker hub

    查找registry 镜像

    meiya@meiya:/etc/docker$ clear
    meiya@meiya:/etc/docker$ docker search registry
    NAME                                    DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
    registry                                The Docker Registry 2.0 implementation for s…   2552                [OK]                
    konradkleine/docker-registry-frontend   Browse and modify your Docker registry in a …   222                                     [OK]
    hyper/docker-registry-web               Web UI, authentication service and event rec…   166                                     [OK]
    atcol/docker-registry-ui                A web UI for easy private/local Docker Regis…   114                                     [OK]
    distribution/registry                   WARNING: NOT the registry official image!!! …   57                                      [OK]
    jhipster/jhipster-registry              JHipster Registry, based on Netflix Eureka a…   44                                      [OK]
    marvambass/nginx-registry-proxy         Docker Registry Reverse Proxy with Basic Aut…   44                                      [OK]
    google/docker-registry                  Docker Registry w/ Google Cloud Storage driv…   38                                      
    confluentinc/cp-schema-registry         Official Confluent Docker Images for Schema …   34                                      
    joxit/docker-registry-ui                Docker registry v2 web User Interface           25                                      [OK]
    klausmeyer/docker-registry-browser      Web Interface for the Docker Registry HTTP A…   19                                      [OK]
    openshift/origin-docker-registry        The integrated OpenShift V3 registry            13                                      
    deis/registry                           Docker image registry for the Deis open sour…   12                                      
    quiq/docker-registry-ui                 Docker Registry UI                              7                                       
    landoop/schema-registry-ui              UI for Confluent's Schema Registry              7                                       [OK]
    parabuzzle/docker-registry-ui           Docker registry frontend for registry v2        6                                       
    anoxis/registry-cli                     You can list and delete tags from your priva…   6                                       [OK]
    elasticio/docker-registry-ecs           Docker image to run Docker private registry …   4                                       [OK]
    allingeek/registry                      A specialization of registry:2 configured fo…   4                                       [OK]
    yammer/docker-registry-cache            Simple docker registry cache using squid-pro…   1                                       [OK]
    webhippie/registry                      Docker images for Docker Registry               1                                       [OK]
    aibaars/docker-registry2-gcs            Docker Registry2 w/ Google Cloud Storage dri…   1                                       
    convox/registry                                                                         0                                       
    lorieri/registry-ceph                   Ceph Rados Gateway (and any other S3 compati…   0                                       
    torchbox/kube-registry-proxy            kube-registry-proxy fork with correct timeou…   0                                       [OK]

    拉取registry镜像

    meiya@meiya:/etc/docker$ docker pull registry
    Using default tag: latest
    latest: Pulling from library/registry
    c87736221ed0: Pull complete 
    1cc8e0bb44df: Pull complete 
    54d33bcb37f5: Pull complete 
    e8afc091c171: Pull complete 
    b4541f6d3db6: Pull complete 
    Digest: sha256:3b00e5438ebd8835bcfa7bf5246445a6b57b9a50473e89c02ecc8e575be3ebb5
    Status: Downloaded newer image for registry:latest

    查看镜像

    meiya@meiya:/etc/docker$ docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    registry            latest              f32a97de94e1        2 months ago        25.8MB

    docker 镜像删除后会把所有的数据和文件都删除,所以要把宿主机的本地目录挂载到registry容器内部的目录上,在删除registry容器后依旧能保证文件和数据不丢失

    meiya@meiya:/etc/docker$ mkdir -p ~/docker/data/registry
    meiya@meiya:/etc/docker$ cd /
    bin/        cdrom/      etc/        lib/        lost+found/ mnt/        proc/       run/        snap/       sys/        usr/        
    boot/       dev/        home/       lib64/      media/      opt/        root/       sbin/       srv/        tmp/        var/        
    meiya@meiya:/etc/docker$ cd /
    bin/        cdrom/      etc/        lib/        lost+found/ mnt/        proc/       run/        snap/       sys/        usr/        
    boot/       dev/        home/       lib64/      media/      opt/        root/       sbin/       srv/        tmp/        var/        
    meiya@meiya:/etc/docker$ cd ~/docker/data/registry/
    meiya@meiya:~/docker/data/registry$ pwd
    /home/meiya/docker/data/registry
    meiya@meiya:~/docker/data/registry$ 

    创建registry镜像容器,绑定5000端口

    meiya@meiya:~/docker/data/registry$ docker run -d -p 5000:5000 -v /home/meiya/docker/data/registry:/tmp/registry registry
    0a922d940f7c9d7c4c3e4d81caaf3d5582e34fbb49e2824675b4c43b652e3240
    meiya@meiya:~/docker/data/registry$ docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
    0a922d940f7c        registry            "/entrypoint.sh /etc…"   7 seconds ago       Up 6 seconds        0.0.0.0:5000->5000/tcp   nifty_ganguly
    meiya@meiya:~/docker/data/registry$ netstat -ntlp | grep 5000
    (Not all processes could be identified, non-owned process info
     will not be shown, you would have to be root to see it all.)
    tcp6       0      0 :::5000                 :::*                    LISTEN      -                   
    meiya@meiya:~/docker/data/registry$ telnet 192.168.1.57 5000
    Trying 192.168.1.57...
    Connected to 192.168.1.57.
    Escape character is '^]'.
    q
    HTTP/1.1 400 Bad Request
    Content-Type: text/plain; charset=utf-8
    Connection: close
    
    400 Bad RequestConnection closed by foreign host.
    meiya@meiya:~/docker/data/registry$ 

    将本地的镜像加上tag , 然后上传私服

    meiya@meiya:~/docker/data/registry$ docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    tomcat              latest              27600aa3d7f1        37 hours ago        463MB
    registry            latest              f32a97de94e1        2 months ago        25.8MB
    meiya@meiya:~/docker/data/registry$ docker tag tomcat 192.168.1.57:5000/tomcat
    meiya@meiya:~/docker/data/registry$ docker images
    REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
    192.168.1.57:5000/tomcat   latest              27600aa3d7f1        37 hours ago        463MB
    tomcat                     latest              27600aa3d7f1        37 hours ago        463MB
    registry                   latest              f32a97de94e1        2 months ago        25.8MB
    meiya@meiya:~/docker/data/registry$ docker push 192.168.1.57:5000/tomcat
    The push refers to repository [192.168.1.57:5000/tomcat]
    Get https://192.168.1.57:5000/v2/: http: server gave HTTP response to HTTPS client
    meiya@meiya:~/docker/data/registry$ 

    这里出了个问题  ,主要是因为docker新版本默认不支持https协议,开放https协议

    Get https://192.168.1.57:5000/v2/: http: server gave HTTP response to HTTPS client

    解决办法,修改docker的配置文件,

    修改默认的配置文件

    sudo vi /etc/default/docker

    加入 

    DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com --insecure-registry=192.168.1.57:5000"
    # Docker Upstart and SysVinit configuration file
      
    #
    # THIS FILE DOES NOT APPLY TO SYSTEMD
    #
    #   Please see the documentation for "systemd drop-ins":
    #   https://docs.docker.com/engine/admin/systemd/
    #
    
    # Customize location of Docker binary (especially for development testing).
    #DOCKERD="/usr/local/bin/dockerd"
    
    # Use DOCKER_OPTS to modify the daemon startup options.
    #DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"
    
    DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com --insecure-registry=192.168.1.57:5000"
    
    # If you need Docker to use an HTTP proxy, it can also be specified here.
    #export http_proxy="http://127.0.0.1:3128/"
    
    # This is also a handy place to tweak where Docker's temporary files go.
    #export DOCKER_TMPDIR="/mnt/bigdrive/docker-tmp"

    重启docker服务, 重启registry容器,重新push本地镜像

    meiya@meiya:~/docker/data/registry$ docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    meiya@meiya:~/docker/data/registry$ docker run -d -p 5000:5000 -v /home/meiya/docker/data/registry:/tmp/registry registry
    5b48b4c0147ceb6b7fec52943cd38420ac61ae488089326ff5b956b7c566f69e
    meiya@meiya:~/docker/data/registry$ docker push 192.168.1.57:5000/tomcat
    The push refers to repository [192.168.1.57:5000/tomcat]
    d0830810b081: Pushed
    32cddd6bb4cf: Pushed
    f0e1731fd286: Pushed
    2b6c38ff3137: Pushed
    d38f3d5a39fb: Pushed
    fe60061c6c4e: Pushed
    7d63f8777ebf: Pushed
    1b958b53b256: Pushed
    2c719774c1e1: Pushed
    ec62f19bb3aa: Pushed
    f94641f1fe1f: Pushed
    latest: digest: sha256:b3e89c95260685b18b31acb078b168c30a3b94ba561801bf374ccec0e7c622c6 size: 2626

    ps:

    第二种办法是修改  /etc/docker/daemon.json 文件,重启docker服务, 重启registry容器,重新push本地镜像

    meiya@meiya:~/docker/data/registry$ cat /etc/docker/daemon.json 
    {
        "registry-mirrors": ["https://hdokp13m.mirror.aliyuncs.com"],
        "insecure-registries":["192.168.1.57:5000"],
        "registry-mirrors": ["https://registry.docker-cn.com"]
    }

    查看私有仓库中的镜像

    meiya@meiya:~/docker/data/registry$ curl get http://192.168.1.57:5000/v2/_catalog
    curl: (6) Could not resolve host: get
    {"repositories":["tomcat"]}
    

     ps:

      部分旧的docker版本使用的地址是 http://192.168.1.57:5000/v2/_search

    从私有仓库下载镜像

    meiya@meiya:~/docker/data/registry$ docker pull 192.168.1.57:5000/tomcat
    Using default tag: latest
    latest: Pulling from tomcat
    Digest: sha256:b3e89c95260685b18b31acb078b168c30a3b94ba561801bf374ccec0e7c622c6
    Status: Image is up to date for 192.168.1.57:5000/tomcat:latest
  • 相关阅读:
    理解“统一编址与独立编址、I/O端口与I/O内存” arm
    JS + CSS 美化 select 下拉框表单
    关于 ecshop common.js 文件 自动随机输出 Powered by ECShop
    Zend Framework 入门随笔 配置与注意事项
    Delphi编程保存数据到Excel文件(4):使用NativeExcel2控件
    ORACLE 最大连接数的问题1
    一生delphi编程经验(转)
    XLSReadWriteII控件来完成10×10的乘法表
    Delphi 动态调整打印机纸张大小
    Linux下Oracle重启和修改连接数3
  • 原文地址:https://www.cnblogs.com/xiaojf/p/10843413.html
Copyright © 2011-2022 走看看