`

10、Docker私有仓库搭建

 
阅读更多
和Mavan的管理一样,Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库。
使用私有仓库有许多优点:
节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可;
提供镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用。
接下来我们就大致说一下如何在本地搭建私有仓库。
目前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
1
1
因为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私有仓库搭建

    docker有公共仓库,相当于在...所以有两个应对策略,第一个就是使用daocloud加速器,第二个就是本地搭建私有仓库,当从公共仓库中pull下来的镜像,存到本地私有仓库,下次还需要使用直接从本地下载,那速度就快很多了。

    Dockerfile指令与Docker-compose容器编排-搭建docker私有仓库.doc

    Dockerfile 指令与 Docker-compose 容器编排-搭建 docker 私有仓库 本文档主要讲解了 Dockerfile 指令、Docker-compose 容器编排、搭建 docker 私有仓库等内容。以下是相关知识点的总结: 一、Dockerfile 指令 ...

    详解docker私有仓库搭建与使用实战

    主要介绍了详解docker私有仓库搭建与使用实战,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Docker搭建私有镜像仓库的方法

    和Mavan的管理一样,Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库。 使用私有仓库有许多优点: 节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库...

    离线搭建docker私有镜像仓库软件包

    离线搭建docker私有镜像仓库软件包 教程参见https://blog.csdn.net/qq_38120778/article/details/124277294

    docker私有仓库部署

    ## Docker 私有仓库 ### 一、私有仓库搭建 二、将镜像上传至私有仓库 三、 从私有仓库拉取镜像

    Centos 7中Docker私有仓库的搭建方法

    本篇文章主要介绍了Centos 7中Docker私有仓库的搭建方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    docker 私有化部署

    搭建官方私有仓库 docker pull registry:2 docker run -d -p 5000:5000 registry:2 docker tag zookeeper:3.5 localhost:5000/zookeeper:3.5 docker push localhost:5000/zookeeper:3.5 搭建harbor1.2.2私有...

    9.1 使用harbor搭建docker私有仓库1

    第一章 部署准备1.1 目的搭建自己的 docker 私有仓库,并可以通过 web 管理。1.2 规划:18.09.0:18.09.0Harbor: 1.5.4

    docker私有仓库的搭建和使用详解

    主要介绍了docker私有仓库的搭建和使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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

    搭建私有仓库 179上下载registry镜像 docker pull registry 防火墙添加运行5000端口 iptables -I INPUT 1 -p tcp --dport 5000 -j ACCEPT 下载完之后我们通过该镜像启动一个容器 代码如下: docker run -d -p 500

    docker搭建私有仓库.txt

    docker私有仓库在虚拟机上创建私有仓库,环境centos6.0

    详解Docker私有仓库最简便的搭建方法

    本篇文章主要介绍了Docker私有仓库最简便的搭建方法,具有一定的参考价值,有兴趣的可以了解一下。

    docker搭建基于局域网的私有仓库(带用户权限)

        该文章将会讲述如何搭建带用户权限的私有仓库,使用私有仓库的优点: 1、节省网络带宽,每个镜像不用每个人都去官网下载,只需要从私有仓库中下载即可。2、提供镜像资源利用,针对公司内部使用的镜像,推送到...

Global site tag (gtag.js) - Google Analytics