参考链接来自:http://blog.csdn.net/wangtaoking1/article/details/44180901/

和Mavan的管理一样,Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库。

使用私有仓库有许多优点:

  1. 节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可;
  2. 提供镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用。

接下来我们就大致说一下如何在本地搭建私有仓库。

目前Docker Registry已经升级到了v2,最新版的docker已不再支持v1。Registry v2使用Go语言编写,在性能和安全性上做了很多优化,重新设计了镜像的存储格式。此文档是在v1的基础上写的,如果需要安装registry v2,只需下载registry:2.2即可,或者可以下载后面的安装脚本运行安装。

环境准备:

环境:两个装有Docker的CentOS 7.2 虚拟机

服务器1:192.168.68.14    ------用户开发机

服务器2:192.168.68.25    ------用作私有仓库

此处我们准备了两个虚拟机,分别都安装了Docker,其中14机器用作开发机,25机器用作registry私有仓库机器。环境准备好之后接下来我们就开始搭建私有镜像仓库。

搭建私有仓库

首先在25机器上下载registry镜像

$ docker pull registry

下载完之后我们通过该镜像启动一个容器

$docker run -d -p 5000:5000 registry

默认情况下,会将仓库存放于容器内的/tmp/registry目录下,这样如果容器被删除,则存放于容器中的镜像也会丢失,所以我们一般情况下会指定本地一个目录挂载到容器内的/tmp/registry下,如下:

$docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry 

可以看到我们启动了一个容器,地址为:192.168.68.25:5000。


测试

接下来我们就要操作把一个本地镜像push到私有仓库中。首先在25机器下pull一个比较小的镜像来测试(此处使用的是busybox)。

$ sudo docker pull busybox

接下来修改一下该镜像的tag。

$ sudo docker tag busybox 192.168.112.136:5000/busybox

接下来把打了tag的镜像上传到私有仓库。

$ sudo docker push 192.168.68.25:5000/busybox   
有报错,如下图:

因为Docker从1.3.X之后,与docker registry交互默认使用的是https,然而此处搭建的私有仓库只提供http服务,所以当与私有仓库交互时就会报上面的错误。为了解决这个问题需要在启动docker server时增加启动参数为默认使用http访问。修改docker启动配置文件(此处是修改25机器的配置)Centos7下配置文件地址为:/etc/sysconfig/docker,在其中增加--insecure-registry 192.168.68.25:5000如下所示:

$ vim /etc/sysconfig/docker
修改完之后,重启Docker服务。
$ service  docker restart

重启完之后我们再次运行推送命令,把本地镜像推送到私有服务器上。

$ docker push 192.168.68.25:5000/busybox
发现推送失败,报错如下:
解决思路:查看registry容器是否启动,docker ps 发现真没有启动,因为刚刚重启了docker服务,然后这个容器没有加到随docker启动而启动
步骤:docker start registry
再次推送:docker push 192.168.68.25:5000/busybox
成功如图:
可以看到镜像已经push到私有仓库中去了。

接下来我们删除本地镜像,然后从私有仓库中pull下来该镜像。

docker rmi 192.168.68.25:5000/busybox

docker pull  192.168.68.25:5000/busybox

到此就搭建好了Docker私有仓库。上面搭建的仓库是不需要认证的,我们可以结合nginx和https实现认证和加密功能。

管理仓库中的镜像


查询

如果我们想要查询私有仓库中的所有镜像,使用docker search命令:

# docker search registry_ip:5000/

如果要查询仓库中指定账户下的镜像,则使用如下命令:

# docker search registry_ip:5000/account/

同时也可以指定镜像查询。

删除

目前尚未找到方法删除私有仓库中的镜像,尝试过直接从仓库存储目录中删除镜像文件,但是并不能成功删除镜像。

docker使用registry搭建本地私有仓库的更多相关文章

  1. Docker容器之搭建本地私有仓库

    Docker容器之搭建本地私有仓库 本地私有仓库搭建的具体步骤 首先下载 registry 镜像 docker pull registry 在 daemon.json 文件中添加私有镜像仓库的地址并重 ...

  2. 搭建docker镜像仓库(一):使用registry搭建本地镜像仓库

    目录 一.系统环境 二.前言 三.使用registry搭建私有镜像仓库 3.1 环境介绍 3.2 k8smaster节点配置镜像仓库 3.3 k8sworker1节点配置从私有仓库上传和拉取镜像 3. ...

  3. Docker基础-搭建本地私有仓库

    1.使用registry镜像创建私有仓库 安装Docker后,可以通过官方提供的registry镜像来简单搭建一套本地私有仓库环境: docker run -d -p 5000:5000 regist ...

  4. docker 搭建本地私有仓库

    1.使用registry镜像创建私有仓库 安装docker后,可以通过官方提供的 registry 镜像来简单搭建一套本地私有仓库环境: docker run -d -p : registry: 这将 ...

  5. Docker搭建本地私有仓库

    安装部署一个私有的Docker Registry是引入.学习和使用Docker这门技术的必经之路之一.尤其是当Docker被所在组织接受,更多人.项目和产品开始接触和使用Docker时,存储和分发自制 ...

  6. Docker本地私有仓库实战

    Docker仓库主要用于存放Docker镜像,Docker仓库分为公共仓库和私有仓库,基于registry可以搭建本地私有仓库,使用私有仓库的优点如下: 1)节省网络带宽,针对于每个镜像不用去Dock ...

  7. 搭建docker镜像仓库(二):使用harbor搭建本地镜像仓库

    目录 一.系统环境 二.前言 三.Harbor 四.使用harbor搭建私有镜像仓库 4.1 环境介绍 4.2 k8smaster节点安装配置harbor 4.2.1 安装harbor离线包 4.2. ...

  8. 实战maven私有仓库三部曲之三:Docker下搭建maven私有仓库

    本章是<实战maven私有仓库>系列的第三篇,在前两章中,我们先在linux搭建maven私有仓库,然后在开发环境使用此仓库,本章我们在docker下快速搭建maven私有仓库,然后像前面 ...

  9. Kubernetes本地私有仓库配置

    实验环境 master 10.6.191.181 node1 10.6.191.182 node2 10.6.191.183 本地私有仓库 10.6.191.184 一.安装本地私有仓库 1.安装do ...

随机推荐

  1. 7-39 Math对象

    7-39 Math对象 学习要点 掌握常用的数学计算方法 温馨提示:关于学习方法的建议 不要强求自己讲参考手册上所以的属性和方法都搞清楚,原因如下: 有些属性和方法非常生僻,很少用,甚至经过一段时间后 ...

  2. Linux CentOS 6.5中安装与配置Tomcat-8方法

    安装环境:CentOS-6.5 安装方式:源码安装 软件:apache-tomcat-8.0.0.RC3.tar.gz 下载地址:http://tomcat.apache.org/download-8 ...

  3. CodeForces 723D Lakes in Berland (dfs搜索)

    题意:给定一个n*m的矩阵,*表示陆地, . 表示水,一些连通的水且不在边界表示湖,让你填最少的陆地使得图中湖剩下恰好为k. 析:很简单的一个搜索题,搜两次,第一次把每个湖的位置和连通块的数量记下来, ...

  4. 创建swagger的springboot-stater,并在spring cloud zuul网关中引入

    Swagger 是一款RESTFUL接口的.基于YAML.JSON语言的文档在线自动生成.代码自动生成的工具. 通过在controller中添加注解,即可轻易实现代码文档化. Swagger提供ui界 ...

  5. vim下撤销操作.选中复制等操作

    vim撤销操作:u vim恢复操作:ctrl+r 使用normal模式下的  v命令,进入visual模式,v+ j/k/h/l   进行文本选中 对于选中的文本进行如下按键: (1.1)d   -- ...

  6. 面试基础试题 一 http和HTTPS的区别

    作为老生常谈的问题,我主要给出我自己的理解和结合大牛的叙述的综合看法,来检验自己学习 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何 ...

  7. 记一次线上环境的内存溢出(java.lang.OutOfMemoryError)

    事故背景 今天客户说风控项目有个别用户查询不到数据不是报错就是一直卡在那里,我就去那个接口看了下. 一看项目日志今天的都几个g了,平常也就几百兆吧,很明显出了问题. 请求接口后使用命令tail -f ...

  8. Ubuntu 必装软件及安装教程

    安装搜狗拼音输入法 因为sogou是基于fcitx的,所以先添加fcitx键盘输入法系统[系统默认是iBus].在终端中,输入命令将下载源添加至系统源(添加依赖). sudo add-apt-repo ...

  9. ACM输入外挂

    一.什么是输入挂 scanf的输入速度不cin快得多,那么有没有比scanf更快的东西呢?这就是要用到输入挂了. 二.什么时候使用输入挂 当输入规模达到1x10^6次方的时候,就需要输入挂,否则很可能 ...

  10. 227 Basic Calculator II 基本计算器II

    实现一个基本的计算器来计算一个简单的字符串表达式. 字符串表达式仅包含非负整数,+, - ,*,/四种运算符和空格 . 整数除法仅保留整数部分. 你可以假定所给定的表达式总是有效的. 一些例子: &q ...