前言

上一篇文章讲了Docker Machine实现多主机Docker节点的管理。本文讲解如何实现Docker Registry,其实这个在第一篇Docker入门一文中已经简单介绍,本文仅是对一些细节做个说明。

Why Docker Registry?

有时我们的服务器无法访问互联网,或者你不希望将自己的镜像放到公网当中,那么你就需要Docker Registry,它可以用来存储和管理自己的镜像。

How to install Docker Registry?

其实创建私有的Docker仓库非常简单,只需要运行一个Registry容器即可,该容器存储在Docker HUB中。

docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry

-d 是后台启动容器。

-p 将容器的 5000 端口映射到 Host 的 5000 端口。5000 是 registry 服务端口。

-v 将容器 /var/lib/registry目录映射到宿主机的/myregistry,用于存放镜像数据。

How to use Docker Registry?

理论上我们已经搭建好了自己的私有镜像仓库,但这时候还有一些问题需要我们解决。

在pull或者push镜像时报拒绝连接的错误。

这是由于Registry为了安全性考虑,默认是需要证书支持的,证书这块我倒没有研究过,可以通过一个简单的办法解决。创建或者修改/etc/docker/daemon.json文件,并在其中写入

{
"insecure-registries": ["<ip>:5000"]
}

其中为安装了Registry的机器ip地址。需要注意的是在安装registry的节点和客户端需要访问私有Registry的节点都需要执行此步操作。

修改文之后执行以下命令重启节点docker。

systemctl daemon-reload
systemctl restart docker

我是在ubuntu16环境进行的上述操作,其他系统可以参考相应命令。

通过 docker tag重命名镜像,使之与registry匹配。

docker tag wsf <ip>:5000/wsf:v1

给wsf镜像重命名为:5000/wsf:v1,v1为版本号,前面必须要加上域名或IP地址(运行上面registry容器的地址)和端口号。

其实Docker HUB与我们要建立的私有Registry没有本质的区别。

docker run ubuntu

语句从官方hub中寻找镜像,它是

docker run docker.io/library/ubuntu

的简写。

docker.io即是上面的ip地址,端口号为80省略。

上传镜像

docker push <ip>:5000/wsf:v1

下载镜像

docker pull <ip>:5000/wsf:v1

上传和下载镜像都可以在任意能访问Registry的节点上进行。前提是此节点必须进行上述的修改daemon.json操作。

查看Registry中所有镜像信息

curl http://<ip>:5000/v2/_catalog

此语句会返回一个json,包含当前Registry中存储的镜像信息。

总结

本文简单为大家介绍了Docker Registry的相关细节,有了这个东西就能更好的实现docker的多主机管理和我们自定义镜像的管理。

Docker Registry的更多相关文章

  1. docker4dotnet #4 使用Azure云存储构建高速 Docker registry

    使用Docker来构建应用程序最常见的操作就是 docker run 或者 docker pull了,但是由于众所周知的原因,在国内想要高速稳定的获取docker hub上面的资源并不是件容易的事情, ...

  2. 建立docker私有库(docker registry)(转)

    建立docker私有库(docker registry) 博客分类: docker   我的目标还是无互联网安装,部署内部的docker私有库,目前docker镜像的获得还是需要互联网,将下载好的do ...

  3. 在Ubuntu14.04系统POWER8服务器上搭建Docker Registry服务

    本文描述了如何在POWER8服务器上搭建一个本地化的Docker镜像仓库,主要涉及镜像制作,Docker Registry服务启动等.希望能够对在非X86服务器上搭建Docker仓库的同学提供参考. ...

  4. 为 Docker Registry 增加 Nginx 前端

    其实Docker Registry 就是一个API backend,所以加一个Nginx前端有大大的好处,比如docker push 时增加用户名密码验证. 怎么加?请参考以下nginx配置 upst ...

  5. Docker Registry搭建私有仓库

    利用Registry镜像搭建Docker私有仓库遇到了很多坑,说来也是找到的资料都是杂而不精的东西,所以也没少走了弯路,现在回过头看去感觉好多坑还是别人给挖的··· 不过努力的最终结果还是好的,因为找 ...

  6. nginx反向代理docker registry报”blob upload unknown"解决办法

    问题症状:keepalived+nginx反向代理后端docker registry群集时,使用docker客户机向registry push镜像时出现 "blob upload unkno ...

  7. Docker入门教程(四)Docker Registry

    Docker入门教程(四)Docker Registry [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第四篇,介绍了Docker Registry,它 ...

  8. Docker registry V2

    部署私有Docker Registry 搭建 Insecure Registry 修改Registry server上的Docker daemon的配置,为DOCKER_OPTS增加–insecure ...

  9. 【云计算】docker registry v2简介

    ubuntu docker方式部署docker registry v2 2016-03-03 17:36 by JackieHan, 4 阅读, 0 评论, 收藏,  编辑 生成自己签名的证书 生成签 ...

  10. 在CentOS 6上搭建私有的Docker Registry

    在CentOS 6上搭建私有的Docker Registry v2Registry概念 :Registry是一个无状态的, 高可扩展的服务器端应用程序, 用于存储和分发Docker Image. 依赖 ...

随机推荐

  1. 下载旧版chrome

    问题描述: xp只能使用chrome 49及其之前的版本,去哪里下载? 解决办法: 1. 在这里 http://www.slimjet.com/chrome/google-chrome-old-ver ...

  2. iOS基于AVPlayer的视频播放

    基于 AVPlayer 自定义播放器http://www.cocoachina.com/ios/20160921/17609.html,http://www.2cto.com/kf/201608/53 ...

  3. AngularJs学习笔记1——总体介绍

    这周末在家呆了两天,正好中午闲暇时间继续分享Angularjs相关,今天主要分享Angularjs总体介绍及数据绑定部分内容,下面直接进入主题. 1.基本概念: AngularJS是为了克服HTML在 ...

  4. 邪恶改装2:用单片机实现一次简单的wifi密码欺骗

    0×00 前言 前段时间用TPYBoard v202 做了一个简单的WIFI干扰攻击器(ps :没有看过的小伙伴,可以看一下:http://www.freebuf.com/column/136985. ...

  5. PowerShell使用-debug定位问题

    PowerShell就像它的名字一样,很强大,用起来很方便,所以微软基本上所有的主流企业级产品都支持PowerShell,Azure也不例外.通过Azure门户网站固然是简单直观,但对于很多IT管理员 ...

  6. 《物联网框架ServerSuperIO教程》-22.Web端对传感器实时监测与控制。附:v3.6.8版本,支持WebSocket

    1.ServerSuperIO v3.6.8更新内容 1.1 增加WebSocket服务端功能,支持自控模式.并发模式.单例模式,不支持轮询模式1.2 接收数据缓存与现有的IO实例分离.1.3 优化代 ...

  7. 第2篇:用as3.0制作一个滚动条组件

    本实例演示了实现一个滚动条基本功能的制作方法,没有添加改变皮肤,修改滚动条视框大小等功能,有兴趣的朋友可根据自己要求自行添加.使用时只需要通过以下一行代码创建滚动条组件: var myScrollba ...

  8. Struts框架之 执行流程 struts.xml 配置详细

    1.执行流程 服务器启动: 1. 加载项目web.xml 2. 创建Struts核心过滤器对象, 执行filter  →  init()   struts-default.xml,    核心功能的初 ...

  9. JavaWeb 后端 <八> 之 JDBC基礎(全)

    一.JDBC简介 1.JDBC是SUN公司为了简化操作数据推出一套规范.数据库厂商的驱动就是对JDBC的实现. 2.Java Data Base Connectivity(java数据库连接),它主要 ...

  10. org.apache.jasper.JasperException: - Page directive must not have multiple occurrences of pageencoding

    最近写jsp遇到一系列的低级错误,记录下来权当前车之鉴吧. 错误提示: SEVERE: Servlet.service() for servlet jsp threw exceptionorg.apa ...