docker-建立私有registry

我们知道可以使用hub.docker.com作为我们公共或者私有的registry。但由于服务器在国外的原因,网速会非常的慢。
所以我们在利用docker开发构建容器服务时,我们希望能够建立自己的私有registry,上传镜像值我们的私有registry中心,然后在其他物理机上部署的时候,可以快速的pull,然后实现大规模的分发以及部署,提高效率。
下面将会说一下如何通过registry容器实现这个

环境:centos7.0,  docker1.13.1版本

docker1.12版本以后,docker的可执行文件从/usr/bin/docker变成了/ussr/bin/dockerd,每一个版本在不同的环境下,dockerd的daemon都是不同的配置,具体的要根据docker官网的指导进行配置。我们在网上可以看到很多关于如何配置docker的daemon启动参数教程,以及一些出现的问题,其实大部分都是讲的比较乱的,或者不根据自己的实际系统和docker版本去确定如何配置的,因为不同的系统版本和docker版本具体的opts的选项是不同的,这个配置的文件的位置也是不一样的,如果没清楚整个区别,就跟着网上的改来改去,最后配置还是没能生效。

(1)无认证的registry
在环境中,dockerd的配置文件在/etc/docker/daemon.json中,如果没有该文件,可以手动创建。

第一步:pull docker官方的registry的第二个版本,docker1.6版本以上支持registry2
docker pull registry:2.6.0

或者docker pull registry 不指定版本,表示latest版本

第二步:配置daemon.json,去掉docker默认的https的访问
vim /etc/docker/daemon.json
里面的内容是一个json对象,加上一项insecure-registries,地址自己更改:
{
"insecure-registries":["192.168.1.78:5000"]
}

然后重启docker,执行
systemctl daemon-reload docker
systemctl restart docker

第三步:无认证启动registry容器
docker run -d --name registry -p 5000:5000 --restart=always -v /opt/registry/:/var/lib/registry/ registry:2.6.0
上传到私有镜像的镜像到时是默认存放在容器的/var/lib/registry/,为了防止删除registry,上传的镜像也被删除,所以启用一个volume,将上传的镜像持久化保存在我们物理机上,这里保存位置是/opt/registry/

第四步:测试是否启动容器
curl http://192.168.1.78:5000/v2/_catalog

如果返回{"repositories":[]},代表启动成功了!

第五步:测试上传到我们自己的私有registry
将nginx这个镜像重命名tag
docker tag nginx 192.168.1.78:5000/mynginx
这里需要注意的是重命名的tag必须带有建立192.168.1.78:5000/这个前缀,后面的mynginx是新镜像名。
然后开始进行push到我们建立的私有registry
docker pull 192.168.1.78:5000/mynginx
再通过运行
curl http://192.168.1.78:5000/v2/_catalog
可以看到返回{"repositories":["mynginx"]}
说明已经push到了自己的registry

第六步:测试pull
同样还是在本机上进行pull
首先删除本机存在的镜像192.168.1.78:5000/mynginx(刚才通过tag重命名的)
docker rmi 192.168.1.78:5000/mynginx
然后
docker images
可以看到已经没有了192.168.1.78:5000/mynginx这个镜像
下面开始pull这个镜像
docker pull 192.168.1.78:5000/mynginx
然后再看
docker images
可以看到出现这个192.168.1.78:5000/mynginx
说明pull成功了

第七步:在其他的物理机上pull这个镜像
同样需要在安装docker,然后再/etc/docker/daemon.json这个文件中
添加insecure-registries,ip地址自己更改:
{
"insecure-registries":["192.168.1.78:5000"]
}
然后重启docker,执行
ststemctl daemon-reload docker
systemctl restart docker
docker pull 192.168.1.78:5000/mynginx 
这样子就可以从自己的registry拉取镜像了,当然也可以上传镜像
假如有一个mynginx:1.1
docker tag 192.168.1.78:5000/mynginx 192.168.1.78:5000/mynginx:1.1
docker push 192.168.1.78:5000/mynginx:1.1
其实192.168.1.78:5000/这个就是建立的私有registry的地址

无认证的registry已经完成了,特别在局域网内部开发或者线上部署时非常有用!

下一节将会总结一下关于认证模式的registry,欢迎留意!

原文地址:https://www.cnblogs.com/wangmo/p/8509446.html

时间: 2024-10-22 13:55:39

docker-建立私有registry的相关文章

通过nginx建立docker的私有registry

docker registry具体应用 docker registry 是管理 docker 镜像的服务,  官方registry 地址 http://hub.docker.com ,可以让我们方便的下载预先做好的镜像. $ docker pull centos 上面的命令就是缺省的从这个Docker官方源下载.在国内为了加快访问,也可以使用docker.cn 的服务,详细列出服务器的地址 如: $ docker pull docker.cn/docker/centos 企业应用时基本会创建自己

docker建立私有仓库

实验环境: 怎样将vmware与viutualBOX的网络互通这里就不详细说明了. 在xin7上安装docker 首先在docker的官方站点下载docker的windos安装包,因为墙的因素,这个安装包很难下下来,这边提供了我的网盘链接http://pan.baidu.com/s/1dDGQHZb. 因为docker是基于linux平台的,这里安装程序会安装一个virtualBOX的虚拟机,在虚拟机上生成一的boot2docker的docker环境,在桌面生成Boot2Docker Start

docker 建立私有仓库,24.205为镜像仓库所在主机

一.下载registry #yum install -y python-devel libevent-devel python-pip gcc xz-devel #python-pip install docker-registry 二.在所有docker宿主机上都执行以下操作 #vi /etc/sysconfig/docker 设置other_args='--insecure-registry 192.168.24.205:5000' #service docker restart 三.打开防

Docker镜像创建及建立私有仓库

Docker镜像创建方法 创建镜像的方法有三种,分别是基于已有的镜像创建.基于本地模板创建.基于Dockerfile 创建,下面着重介绍这三种创建镜像的方法. ? 基于已有镜像创建 首先将镜像加载到容器,将容器里面运行的程序及运行环境打包起来生成新的镜像,需要记住该容器的ID号. 命令格式: docker commit [选项] 容器ID/名称 仓库名称:[标签] 常用选项: -m:说明信息 ? -a:作者信息 ? -p:生成过程中停止容器的运行 # docker create -it nick

docker基础 私有仓库repository搭建(1) registry

使用docker的login命令之后,可以使用push命令将镜像推送到dockerhub上,但是dockerhub毕竟在公网上,免费的帐户只有一个private 的repository是免费的,剩下的就都只能做成public的.由于种种限制,企业私有仓库的创建就有了各种应用场景.本文将从使用registry的方式简单介绍如何搭建私有的repository. pull registry镜像 使用到的registry镜像 [[email protected] ~]# docker search re

Docker 私有registry出现的证书问题

在上一篇 最近搭建的私有registry里,参考的文章指出,在push时可能出现问题: 可能会出现无法push镜像到私有仓库的问题.这是因为我们启动的registry服务不是安全可信赖的.这是我们需要修改docker的配置文件/etc/default/docker,添加下面的内容, DOCKER_OPTS="--insecure-registry xxx.xxx.xxx.xxx:5000" 然后重启docker后台进程, $ sudo service docker restart 这是

Docker第七回(私有Registry)

一.Docker Registry的分类 Registry用来保存docker镜像,包括镜像的层次结构和元数据,用户可以自建Registry,也可以使用官方的docker hub Sponsor Registry:第三方的Registry,供客户和docker社区使用 Mirror Registry:第三方的Registry,只让客户使用 Vendor Registry:由发布Docker镜像的供应商提供的Registry Private Registry:通过设有防火墙和额外的安全层的私有实体

Docker搭建私有仓库registry

拉取上传镜像 拉取镜像 docker pull <registry>[:<port>]/[<namespace>/]<name>:<tag> # registry :仓库服务器地址;不指定默认是docker hub # port :端口;默认443,因为是https协议: # namespace :名称空间,指是哪个用户的仓库,如果是顶层仓库,可以省: # name :仓库名: # tag :标签名:默认是latest版本: 上传镜像 docke

docker---nginx反向代理私有registry

一.拓扑环境: IP:192.168.93.202  docker registry服务器 IP:192.168.93.201  docker client服务器 关闭selinux及防火墙 修改/etc/hosts文件 192.168.93.202 docker.shengjing.com hostnamectl set-hostname docker.shengjing.com  (永久修改主机名) 安装依赖的软件包: yum install gcc make pcre-devel pcre