zoukankan      html  css  js  c++  java
  • 进阶Docker笔记(2)—搭建私有仓库

    一、简介

    在 Docker 中,当我们执行 docker pull xxx 的时候 ,它实际上是从 registry.hub.docker.com 这个地址去查找,这就是Docker公司为我们提供的公共仓库。在工作中,我们不可能把企业项目push到公有仓库进行管理。所以为了更好的管理镜像,Docker不仅提供了一个中央仓库,同时也允许我们搭建本地私有仓库。这一篇介绍registry、harbor两种私有仓库搭建。

    二、registry 的搭建

    1. 搭建

    Docker 官方提供了一个搭建私有仓库的镜像 registry ,只需把镜像下载下来,运行容器并暴露5000端口,就可以使用了。

    docker pull registry:2
    
    docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --name myregistry registry:2
    

    Registry服务默认会将上传的镜像保存在容器的/var/lib/registry,我们将主机的/opt/registry目录挂载到该目录,即可实现将镜像保存到主机的/opt/registry目录了。

    浏览器访问http://127.0.0.1:5000/v2,出现下面情况说明registry运行正常。

    2. 验证

    现在通过push镜像到registry来验证一下。

    查看本地镜像:

    $ docker images
    REPOSITORY                                             TAG                 IMAGE ID            CREATED             SIZE
    nginx                                                  latest              568c4670fa80        5 weeks ago         109MB
    ubuntu                                                 latest              93fd78260bd1        7 weeks ago         86.2MB
    elasticsearch                                          6.5.1               32f93c89076d        7 weeks ago         773MB
    

    要通过docker tag将该镜像标志为要推送到私有仓库:

    docker tag nginx:latest localhost:5000/nginx:latest
    

    通过 docker push 命令将 nginx 镜像 push到私有仓库中:

    docker push localhost:5000/nginx:latest
    

    访问 http://127.0.0.1:5000/v2/_catalog 查看私有仓库目录,可以看到刚上传的镜像了:

    下载私有仓库的镜像,使用如下命令:

    docker pull localhost:5000/镜像名:版本号
    例如
    docker pull localhost:5000/nginx:latest
    

    二、harbor 的搭建

    docker 官方提供的私有仓库 registry,用起来虽然简单 ,但在管理的功能上存在不足。 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,harbor使用的是官方的docker registry(v2命名是distribution)服务去完成。harbor在docker distribution的基础上增加了一些安全、访问控制、管理的功能以满足企业对于镜像仓库的需求。

    1.搭建

    下载

    地址:https://github.com/goharbor/harbor/releases 本文是有 v1.2.2

    配置

    解压下载的安装包 harbor-offline-installer-v1.2.2.tgz

    tar -xvf harbor-offline-installer-v1.2.2.tgz
    

    修改 harbor.cfg

    #hostname 改为本地ip,非 Mac OS系统 可以不指定端口
    hostname = 192.168.31.143:9090

    原文链接:https://www.cnblogs.com/huanchupkblog/p/10843800.html
    Keep moving forwards~
  • 相关阅读:
    Gradle 10分钟上手指南
    java并发编程学习: 原子变量(CAS)
    java并发编程学习: 守护线程(Daemon Thread)
    java并发编程学习: 阻塞队列 使用 及 实现原理
    java并发编程学习: ThreadLocal使用及原理
    java并发编程学习:如何等待多个线程执行完成后再继续后续处理(synchronized、join、FutureTask、CyclicBarrier)
    ZooKeeper 笔记(5) ACL(Access Control List)访问控制列表
    gradle项目与maven项目相互转化
    rpc框架之 thrift连接池实现
    java并发编程学习:用 Semaphore (信号量)控制并发资源
  • 原文地址:https://www.cnblogs.com/-X-peng/p/15103892.html
Copyright © 2011-2022 走看看