关闭

Docker学习笔记 — Docker私有仓库搭建

标签: Docker
91885人阅读 评论(2) 收藏 举报
分类:

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

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

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

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

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


环境准备

环境:两个装有Docker的Ubuntu虚拟机
虚拟机一:192.168.112.132 用户开发机
虚拟机二:192.168.112.136 用作私有仓库

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


搭建私有仓库

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

$ sudo docker pull registry

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

$ sudo docker run -d -p 5000:5000 registry

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

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

这里写图片描述

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


测试

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

$ sudo docker pull busybox

这里写图片描述

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

$ sudo docker tag busybox 192.168.112.136:5000/busybox

这里写图片描述

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

$ sudo docker push 192.168.112.136:5000/busybox

这里写图片描述

可以看到push失败,具体错误如下:

2015/01/05 11:01:17 Error: Invalid registry endpoint https://192.168.112.136:5000/v1/: Get https://192.168.112.136:5000/v1/_ping: dial tcp 192.168.112.136:5000: connection refused. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry 192.168.112.136:5000` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/192.168.112.136:5000/ca.crt 

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

$ sudo vi /etc/init/docker.conf

这里写图片描述

修改完之后,重启Docker服务。

$ sudo restart docker

这里写图片描述

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

$ sudo docker push 192.168.112.136:5000/busybox

这里写图片描述

可以看到镜像已经push到私有仓库中去了。

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

$ sudo docker pull 192.168.112.136:5000/busybox

这里写图片描述

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

管理仓库中的镜像


查询

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

# docker search registry_ip:5000/

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

# docker search registry_ip:5000/account/

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

删除

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

Registry V2


Registry V2.2的安装脚本如下:

#!/bin/bash
# Description: create a private registry v2.2
# Version: 0.2
#
# Author: wangtao 479021795@qq.com
# Date: 2015/10/29

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}

Registry的存放目录在Docker Hub上显示的是/tmp/registry-dev,但是映射之后发现并没有存放在该目录,查看源码发现,镜像信息存放在/var/lib/registry目录下,因此这里修改为将/opt/registry目录映射到/var/lib/registry。

上传镜像

# docker push registry:5000/image_name

查看镜像

# curl -XGET http://registry:5000/v2/_catalog
# curl -XGET http://registry:5000/v2/image_name/tags/list

删除镜像
虽然看了官方API,但是还是不能成功删除,不知道digest如何生成。如果有知道的同学请不吝赐教。Docker Registry HTTP API V2
根据网上资料显示,当前版本尚不支持该功能,再等等看新版本吧。



转载自:http://blog.csdn.net/u010397369/article/details/42422243

根据自己的实验有所改动。

本来自己之前已经写了一篇关于Docker私有仓库的搭建的文章,但是后来不小心把它给覆盖了,也不想再写一遍了。这篇文章跟我的搭建思路差不多,所以就转载了这篇文章。

添加了Registry v2的安装部分。

7
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

CentOS 7 : Docker私有仓库搭建和使用

系统环境: CentOS 7.2 192.168.0.179:docker仓库 192.168.0.60:客户端安装并启动dockeryum -y install docker systemctl start docker systemctl enable docker搭建私有仓库179...
  • fgf00
  • fgf00
  • 2016-07-26 22:58
  • 18434

Docker之Centos7 Docker私有仓库搭建

安装环境准备Linux内核版本uname -aDocker版本sudo docker version安装Docker Registrysudo docker run -d -v /home/hzq/registry:/var/lib/registry -p 5000:5000 --restart=a...
  • mmd0308
  • mmd0308
  • 2017-08-14 15:32
  • 1715

4.Docker搭建本地私有仓库

1:已经有Docker hub了,为什么还要搭建私有仓库?       Docker hub为我们提供了很多官方镜像和个人上传的镜像,我们可以下载机构或个人提供的镜像(如ubuntu,busybox...),也可以上传我们自己的本地镜像,然后我们需要...
  • RonnyJiang
  • RonnyJiang
  • 2017-05-04 23:44
  • 1866

docker私有仓库和监控及报警环境搭建

一、私有仓库搭建(registry)以172.16.113.12仓库为例 1、下载registry镜像 docker pull registry 2、运行镜像 docker run -d -p 5000:5000 -v /home/registry/:/var/lib/registry/ -...
  • tanxinliang
  • tanxinliang
  • 2017-12-06 09:28
  • 112

搭建docker镜像私有仓库

1docker官方提供了docker hub来存储我们的镜像文件。但由于docker hub管理的都是公开的镜像,并且访问的时候有时会特别的慢。所以我们打算来搭建一个私有的仓库,需要使用官方库中的registry镜像。2下载registry镜像 docker pull registry运行regi...
  • hty46565
  • hty46565
  • 2017-08-02 21:18
  • 509

03搭建docker私有仓库

搭建docker私仓,可以使用docker官方提供的registry镜像。该镜像目前有2.0,2.3和2.3.1版本。它只与1.6.0以上版本的docker兼容。搭建私仓的步骤如下:   一:无代理、无认证的registry 1:下载registry镜像:docker pull regis...
  • gqtcgq
  • gqtcgq
  • 2016-04-15 17:55
  • 8853

docker 私有镜像仓库搭建

我的环境相关设置如下 环境:centos7 IP地址:10.211.55.30 dockere版本:1.10.3 镜像仓库版本:V2 首先在10.211.55.30机器上下载registry镜像 $ docker pull registry 也可以进行镜像导入的方法进行离线的安装,可以去我的...
  • wu_di_xiao_wei
  • wu_di_xiao_wei
  • 2017-01-27 17:02
  • 3463

docker搭建私有仓库以及使用

应用场景 docker有公共仓库,相当于在公共仓库中存在着大量的镜像资源,但是如果本地要使用这些镜像,需要手动pull到本地,如果下次再用还需要pull,并且docker的公共仓库是在国外的,这样频繁的pull一个镜像很耗时,而且网路受限,经常容易断掉,很麻烦。所以有两个应对策略,第一个就是使用...
  • bingoxubin
  • bingoxubin
  • 2017-12-06 09:05
  • 155350

docker私有仓库搭建

安装docker =================== 1. sudo apt-get update 2. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 3. sudo add-ap...
  • yuanchao99
  • yuanchao99
  • 2017-04-05 11:14
  • 1368

使用Docker registry镜像创建私有仓库

安装Docker后,可以通过官方提供的registry镜像来简单搭建一套本地私有仓库环境,本文记录简单的搭建过程。
  • delphiwcdj
  • delphiwcdj
  • 2015-01-25 01:17
  • 49000
    个人资料
    • 访问:782861次
    • 积分:5491
    • 等级:
    • 排名:第5679名
    • 原创:82篇
    • 转载:44篇
    • 译文:1篇
    • 评论:99条
    最新评论