搭建本地私有仓库

  1. 拉取镜像仓库
    docker pull registry

  2. 查看所有镜像
    docker images

  3. 启动镜像服务器registry
    首先在在主机上新建一个目录,供存储镜像
    cd /usr/local/
    mkdir docker_registry

  4. 启动镜像
    docker run -d -p 5000:5000 --name=jackspeedregistry --restart=always --privileged=true -v /usr/local/docker_registry:/var/lib/registry docker.io/registry
    参数解释:
    ○ -p 5000:5000 端口
    ○ --name=jackspeedregistry 运行的容器名称
    ○ --restart=always 自动重启
    ○ --privileged=true centos7中的安全模块selinux把权限禁止了,加上这行是给容器增加执行权限
    ○ -v /usr/local/docker_registry:/var/lib/registry 把主机的/usr/local/docker_registry 目录挂载到registry容器的/var/lib/registry目录下,假如有删除容器操作,我们的镜像也不会被删除
    ○ docker.io/registry  镜像名称

  5. 查看启动的容器
    docker ps

  6. 从公有仓库拉取一个镜像下来,然后push到私有仓库中进行测试
    这里用nginx镜像做测试
    docker pull nginx
    docker images

  7. 给docker注册https协议,支持https访问
    说明:每一个要使用本地仓库的服务器都添加这个。

    vim /etc/docker/daemon.json
    如果daemon文件不存在,vim会自己创建一个,假如一下代码,

    {
    "insecure-registries":["10.5.6.115:5000"],
    "registry-mirrors": ["https://registry.docker-cn.com"]
    }
    	
    

    如果有多个ip或域名,就用逗号分隔。
    cat /etc/docker/daemon.json

    {
        "registry-mirrors": ["http://f1361db2.m.daocloud.io","https://docker.mirrors.ustc.edu.cn"],
        "insecure-registries":["172.10.10.10:5000","172.10.10.11:5000"],
        "max-concurrent-downloads": 20
    }
    

    注释:

    • insecure-registries----->开放注册https协议,不安全的镜像源
    • registry-mirrors----->仓库源
      然后别忘了要重启docker
      systemctl restart docker
  8. 新建一个tag,把docker.io/nginx名称变成域名或者IP/镜像名称
    docker tag docker.io/nginx 10.5.6.115:5000/nginx
    如果带版本号的,则为:

    docker tag quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.30.0 10.5.6.115:5000/kubernetes-ingress-controller/kubernetes-ingress-controller/nginx-ingress-controller:0.30.0
    
  9. 推送到本地仓库

    docker push 10.5.6.115:5000/nginx
    
    docker push 10.5.6.115:5000/kubernetes-ingress-controller/kubernetes-ingress-controller/nginx-ingress-controller:0.30.0
    
  10. 进入刚才新建的nginx仓库目录

    cd /usr/local/docker_registry/docker/registry/v2/repositories/nginx
    

    删除刚刚tag的镜像 (11.*******:5000/nginx刚才创建的镜像的tag)

    docker rmi 10.5.6.115:5000/nginx
    
    docker rmi  nginx 
    

    查看镜像列表

    docker images
    
  11. 拉取刚刚自己创建的镜像

    docker pull 10.5.6.115:5000/nginx
    
    docker pull 10.5.6.115:5000/kubernetes-ingress-controller/kubernetes-ingress-controller/nginx-ingress-controller:0.30.0
    

    本地私有仓库大功告成

你可能感兴趣的