docker使用registry搭建本地私有仓库

参考链接来自: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/

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

删除

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

时间: 2024-11-05 16:39:26

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

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

1.使用registry镜像创建私有仓库 安装Docker后,可以通过官方提供的registry镜像来简单搭建一套本地私有仓库环境: docker run -d -p 5000:5000 registry 这条命令将自动下载并启动一个registry容器,创建本地的私有仓库服务.默认会将仓库创建在容器的/tmp/registry目录下.可以通过-v参数来将镜像文件存放在本地指定路径 例如:将上传的镜像放到/opt/data/registry目录: docker run -d -p 5000:50

docker 搭建本地私有仓库

1.使用registry镜像创建私有仓库 安装docker后,可以通过官方提供的 registry 镜像来简单搭建一套本地私有仓库环境: docker run -d -p 5000:5000 registry:2 这将自动下载并启动一个 registry 容器,创建本地的私有仓库服务. 默认情况下,仓库会被创建在容器的 /var/lib/registry 目录下.可以通过 -v 参数来将镜像文件存放在本地的指定路径.例如下面的例子将上传的镜像放到 /opt/data/registry 目录: d

DOCKER 08:搭建本地镜像仓库 Harbor

docker 本身的 docker  hub 我们下载很慢,于是有了国内的阿里云,中科大等提供的镜像下载. 但这同样还是受到了本地网络限制,而且对于一个公司而言,代码肯定不好随意放到云上面,于是便有了 docker 仓库的私有化. docker 本身是提供了一个 registry 的容器的,但是并不好用,比如没用网页访问查看,权限管理等. 于是又有了基于 registry 的 harbor 私有仓库,本文主要谈谈如何搭建公司自己的私有仓库. 安装部署 Harbor 为了更快安装 Harbor,一

Docker搭建本地私有仓库

安装部署一个私有的Docker Registry是引入.学习和使用Docker这门技术的必经之路之一.尤其是当Docker被所在组织接受,更多人.项目和产品开始接触和使用Docker时,存储和分发自制的Docker image便成了刚需.Docker Registry一如既往的继承了"Docker坑多"的特点,为此这里将自己搭建"各类"Registry过程中执行的步骤.遇到的问题记录下来,为己备忘,为他参考. Docker在2015年推出了distribution项

centos 7.1搭建本地私有仓库返回500错误

之前有一篇写到在ubuntu14.04系统上安装私有仓库,遇到了两个问题,本次在centos7上遇到了另外一个问题. 安装完仓库并运行registry镜像之后发现push和pull操作都会返回一个500的错误提示,后来发现原来是selinux防火墙没有关(centos7安装完docker之后默认selinux防火墙就是开着的),解决办法如下: vi /etc/sysconfig/selinux 修改该行 SELINUX=disabled

搭建本地私有docker仓库

1.使用registry镜像创建私有仓库  docker run -d -p 5000:5000   --restart=always --name registry registry:2 这条命令将自动下载并启动一个registry容器,创建本地的私有仓库 --restart=always:表示当docker服务重启时,registry也会自动启动 2. 从配置的公共registry地址下载ubuntu:16.04 镜像到本地 docker pull ubuntu:16.04 3.将镜像重新打

Docker本地私有仓库的建立

环境: 192.168.139.26 docker的客户端 192.168.139.52 docker的服务器端(仓库所在位置) 首先在192.168.139.52上下载registry镜像 [email protected]:~$ sudo docker pull registry 下面操作在192.168.139.52完成 默认情况下会将仓库存放于容器内的/tmp/registry目录下,这样如果容器被删除,则存放于容器中的镜像也会丢失,所以我们一般情况下会指定本地一个目录挂载到容器内的/t

Docker以https访问Harbor私有仓库(二)

1 说明 前文Centos7搭建Harbor私有仓库(二)中,我们以https方式搭建了Harbor,本篇我们主要配置Docker以https方式访问Harbor私有仓库 2 Docker配置 2.1 Mac系统 2.1.1 配置Docker Mac系统中只需配置Proferences -> Proxies使用System Proxy即可,如下: 2.1.2 登录私服验证 docker login registry.anxminise.cc #登录私服 2.2 Windows系统 待补充 2.3

SVN搭建本地版本控制仓库

1.安装TortoiseSVN 2.新建一个文件夹,比如F:\SvnProjectsCfg 3.在F:\SvnProjectsCfg新建一个文件夹project1,右键该文件夹选择“create repository here”,那么关于project1的 svn版本信息就都在这个目录(F:\SvnProjectsCfg\project1)下了. 4.在你想存放代码的目录比如F:\MyProjects内空白处右键选择“svn checkout”,在URL of repository按如下格式填写