• docker的私有仓库的搭建


    author: headsen chen 

    date:2018-06-30  23:14:16

    服务端(私有仓库:centos7_64位),使用端:centos6_64位

    1、仓库的搭建:

    安装docker:

    yum -y install epel-release
    yum -y install docker-io
    systemctl start docker

    将本地的仓库换成阿里云的镜像仓库: 

    vim /etc/docker/daemon.json  # 内容如下:
    {
      "registry-mirrors": ["https://cvv5tle1.mirror.aliyuncs.com"]  # 这里的镜像源是我专属的, 其他人用可能起不到加速效果
    }
     systemctl daemon-reload
     systemctl restart docker
    
    在本地注册阿里云的镜像:
    docker login --username=woccb registry.cn-hangzhou.aliyuncs.com/woccb2/chen
    输入设置的密码 

    运行一个生成本地仓库的脚本:

    sh registry-install.sh

    [root@localhost ~]# cat registry-install.sh 
    #!/bin/bash
    # Description: create a private registry v2.2
    # Version: 0.2
    # Author: headsen chen

    set -o xtrace if [[ $UID -ne 0 ]]; then echo "Not root user. Please run as root." exit 0 fi # Install Docker if not docker -v if [[ $? -ne 0 ]]; then echo "Please install Docker first." exit 0 fi REGISTRY_VERSION=2.2 # Download registry image v2.2 docker pull registry:${REGISTRY_VERSION}
    # Start registry container mkdir
    /opt/registry docker run -d -p 5000:5000 --restart=always -v /opt/registry:/var/lib/registry --name hummer_registry registry:${REGISTRY_VERSION}

    检测生成的docker仓库:

    [root@localhost ~]# docker ps -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
    eaa972942548        registry:2.2        "/bin/registry /et..."   35 minutes ago      Up 35 minutes       0.0.0.0:5000->5000/tcp   hummer_registry
    [root@localhost ~]# 

    查询开放的端口:

    [root@localhost ~]# lsof -i:5000
    COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    docker-pr 18119 root    4u  IPv6  50113      0t0  TCP *:commplex-main (LISTEN)

    2、客户端配置:

    安装

    yum -y install epel-release
    yum -y install device-mapper-event-libs
    yum -y install docker-io

    修改配置文件(不修改无法和本地仓库进行认证连接)

    vim /etc/sysconfig/docker   # 加上黄色标注的部分就可以了

    [root@localhost ~]# cat /etc/sysconfig/docker
    # /etc/sysconfig/docker
    #
    # Other arguments to pass to the docker daemon process
    # These will be parsed by the sysv initscript and appended
    # to the arguments list passed to docker -d
    
    other_args="--insecure-registry 192.168.159.131:5000"
    DOCKER_CERT_PATH=/etc/docker
    
    # Resolves: rhbz#1176302 (docker issue #407)
    DOCKER_NOWARN_KERNEL_VERSION=1

     service docker restart

    测试:下载一个镜像并上传到本地仓库

    docker pull webdevops/nginx
    docker images
    docker tag webdevops/nginx 192.168.159.131:5000/nginx-chen # 注意这个固定的格式,否则报错
    docker push 192.168.159.131:5000/nginx-chen  #出现以下提示表示push成功,
    # 如果是加上tag: docker push  192.168.159.131:5000/chen:latest
    [root@localhost ~]# docker push 192.168.159.131:5000/nginx-chen 
    The push refers to a repository [192.168.159.131:5000/nginx-chen] (len: 1)
    ca89ae17bc84: Image already exists 
    2eed794b7b9a: Image successfully pushed 
    15a4031b10d3: Image successfully pushed 
    15a4031b10d3: Buffering to Disk 
    6c4863f14961: Image already exists 
    aa02f81f314b: Image already exists 
    0893fa3a44c9: Image successfully pushed 
    6565352c3a2b: Image successfully pushed 
    6565352c3a2b: Buffering to Disk 
    e86584bf870d: Image successfully pushed 
    928d4898ab17: Image successfully pushed 
    928d4898ab17: Buffering to Disk 
    073806b60691: Image already exists 
    7eb5c12881e1: Image already exists 
    63474e4f2842: Image successfully pushed 
    f7fdafe228d3: Image successfully pushed 
    8475d7efa2f0: Image successfully pushed 
    565220263a7c: Image successfully pushed 
    7d614f18edc3: Image successfully pushed 
    Digest: sha256:417cfafb30d330f5de3c9cef12ee935a321d16593bdd903de3d1017ad3eaa3f3
    [root@localhost ~]#
    View Code

    删除下载的镜像,并从本地的仓库进行下载,看速度是否提高:

    docker rmi webdevops/nginx
    docker rmi 192.168.159.131:5000/nginx-chen
    docker images
    docker pull 192.168.159.131:5000/nginx-chen # 此时从本地的仓库进行下载,发现是极速的秒传

    查询私有仓库中有哪些镜像:  

    [root@localhost ~]# curl -XGET http://192.168.159.131:5000/v2/_catalog
    {"repositories":["busybox"]}
    
    [root@localhost ~]# curl -XGET http://192.168.159.131:5000/v2/busybox/tags/list
    {"name":"busybox","tags":["latest"]} 
  • 相关阅读:
    CORS
    ant design vue table 选择当前数据,要如下传
    Web Components
    slot-scope Element-ui 的 slot 关系理解
    Node.js child_process模块中的spawn和exec方法
    node.js关于sendFile的路径问题,以及与send的区别
    uni-app使用uni.onShareAppMessage不生效
    小程序地理定位qqmap-wx-jssdk.js
    L1-009 N个数求和
    L1-008 求整数段和
  • 原文地址:https://www.cnblogs.com/kaishirenshi/p/9249059.html
Copyright © 2020-2023  润新知