# 环境
系统 Linux 3.10.0-123.9.3.el7.x86_64 CentOS 7.0.1406 (Core)
Docker 1.12.0, build 8eab29e

1、获取镜像

私有仓库以容器的形式运行,需要使用官方的registry镜像。

$ docker pull registry

Using default tag: latest
latest: Pulling from library/registry
3690ec4760f9: Pull complete
930045f1e8fb: Pull complete
feeaa90cbdbc: Pull complete
61f85310d350: Pull complete
b6082c239858: Pull complete
Digest: sha256:1152291c7f93a4ea2ddc95e46d142c31e743b6dd70e194af9e6ebe530f782c17
Status: Downloaded newer image for registry:latest

2、通过registry镜像启动一个容器

$ docker run -d -p 5000:5000 -v `pwd`/data:/var/lib/registry --restart=always --name registry registry

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

$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
80abb3f86a78 registry "/entrypoint.sh /etc/" 22 minutes ago Up 11 minutes 0.0.0.0:5000->5000/tcp registry

3、测试

私有仓库已经在服务器以容器的形式运行起来了。我们只需要把已有的镜像打上合适的标签就行了。

看个示例:

$ pull registry.aliyuncs.com/acs-sample/mysql

其中registry.aliyuncs.com是注册服务器地址,acs-sample/mysql是仓库名,所有者是acs-sample,没有指定镜像标签,则默认是latest

同样的,我们的私有仓库也有注册服务器地址,就是本机IP,这里是139.129.192.245。

下载busybox镜像并重新tag:

$ docker pull busybox
$ docker tag busybox 139.129.192.245:5000/busybox

push到是私有仓库:

$ docker push 139.129.192.245:5000/busybox
The push refers to a repository [139.129.192.245:5000/busybox]
Get https://139.129.192.245:5000/v1/_ping: http: server gave HTTP response to HTTPS client

发现出错了。从错误信息来看,client与Registry交互,默认将采用https访问,但我们在install Registry时并未配置指定任何tls相关的key和crt文件,https访问定然失败。要想弄清这个问题,只能查看Registry Manual

解决方案:修改Registry server上的Docker daemon的配置,ExecStart参数后面增加–insecure-registry

ExecStart=/usr/bin/dockerd --registry-mirror=http://019a7061.m.daocloud.io  --insecure-registry 139.129.192.245:5000

重启:

$ systemctl restart docker.service

由于容器加了启动参数--restart=always,docker Engine重启后容器会自动重启。我们再次push镜像到私有仓库:

$ docker push 139.129.192.245:5000/busybox
The push refers to a repository [139.129.192.245:5000/busybox]
e88b3f82283b: Pushed
latest: digest: sha256:29f5d56d12684887bdfa50dcd29fc31eea4aaf4ad3bec43daf19026a7ce69912 size: 527

成功了。

4、查看仓库信息

$ curl  http://139.129.192.245:5000/v2/_catalog
{"repositories":["busybox"]} $ curl http://139.129.192.245:5000/v2/busybox/tags/list
{"name":"busybox","tags":["latest"]}

参考:

1、部署私有Docker Registry | Tony Bai

http://tonybai.com/2016/02/26/deploy-a-private-docker-registry/

Docker私有仓库搭建的更多相关文章

  1. CentOS7 Docker私有仓库搭建及删除镜像 【转】

    文章来源:centos7 Docker私有仓库搭建及删除镜像 如果不想用私有镜像库,你可以用docker的库 https://hub.docker.com 环境准备 环境:两个装有Docker 17. ...

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

    Docker学习笔记 — Docker私有仓库搭建   目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2   和Mavan的管理一样,Dockers ...

  3. docker私有仓库搭建(ubuntu 14.04和centos7)

    最近是在做一个关于docker云化的项目,马上就要开始实战.下午先做了一个私有仓库搭建的实验,先大概做个笔记,有兴趣的蛮看一下吧. 先在所有机子上都安装上docker,我的是两台ubuntu,分别是1 ...

  4. Docker学习笔记 — Docker私有仓库搭建【转载】

    标签: Docker 2015-03-10 21:08 24190人阅读 评论(0) 收藏 举报  分类: Docker(26)    目录(?)[+]   和Mavan的管理一样,Dockers不仅 ...

  5. CentOS环境下Docker私有仓库搭建

    本文讲述如何搭建docker私有仓库. 有了docker hub,为什么还要搭建docker私有仓库? 1.性能考虑:docker hub的访问要通过互联网,性能太低. 2.安全性:更多的时候,镜像不 ...

  6. docker私有仓库搭建和资源限制

    Docker 私有仓库的搭建 docker 私有仓库默认只支持https协议的访问  不支持http协议 如果需要允许通过http协议访问 必须手动修改配置文件 docker官方默认提供的仓库  提供 ...

  7. centos7 docker私有仓库搭建

    习Docker的过程中Docker的私有仓库一直没能成功,就是因为CentOS 6.x和CentOS 7默认引入了支持https认证,每次在push和pull的时候都会报错,今天是周末,利用一天的时间 ...

  8. docker私有仓库搭建及认证

    什么是docker? Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机 ...

  9. docker 私有仓库搭建

    知识基础:ubuntu系统安装,docker安装,了解docker的基础知识 下载镜像(如果下载2版本以上的需要配置ssl证书,这里先用0.9.1的演示) root@ubuntu:/# docker ...

随机推荐

  1. 消息队列 Kafka 的基本知识及 .NET Core 客户端

    前言 最新项目中要用到消息队列来做消息的传输,之所以选着 Kafka 是因为要配合其他 java 项目中,所以就对 Kafka 了解了一下,也算是做个笔记吧. 本篇不谈论 Kafka 和其他的一些消息 ...

  2. ExtJS 4.2 Grid组件的单元格合并

    ExtJS 4.2 Grid组件本身并没有提供单元格合并功能,需要自己实现这个功能. 目录 1. 原理 2. 多列合并 3. 代码与在线演示 1. 原理 1.1 HTML代码分析 首先创建一个Grid ...

  3. SDWebImage源码解读_之SDWebImageDecoder

    第四篇 前言 首先,我们要弄明白一个问题? 为什么要对UIImage进行解码呢?难道不能直接使用吗? 其实不解码也是可以使用的,假如说我们通过imageNamed:来加载image,系统默认会在主线程 ...

  4. 免费高效实用的.NET操作Excel组件NPOI(.NET组件介绍之六)

    很多的软件项目几乎都包含着对文档的操作,前面已经介绍过两款操作文档的组件,现在介绍一款文档操作的组件NPOI. NPOI可以生成没有安装在您的服务器上的Microsoft Office套件的Excel ...

  5. EF6 对多个数据库,多个DBContext的情况 进行迁移的方法。

    参见: http://stackoverflow.com/questions/21537558/multiple-db-contexts-in-the-same-db-and-application- ...

  6. Response.Redirect引起的性能问题分析

    现象: 最近做的一个系统通过单点登录(SSO) 技术验证用户登录.用户在SSO 系统上通过验证后,跳转到该系统的不同模块.而跳转的时间一直维持子啊几分钟左右. 分析步骤: 在问题复现时抓取Hang d ...

  7. JavaScript将字符串中的每一个单词的第一个字母变为大写其余均为小写

    要求: 确保字符串的每个单词首字母都大写,其余部分小写. 这里我自己写了两种方法,或者说是一种方法,另一个是该方法的变种. 第一种: function titleCase(str) { var new ...

  8. osi(open system interconnection)模型的通俗理解

    OSI模型的理解: 以你和你女朋友以书信的方式进行通信为例. 1.物理层:运输工具,比如火车.汽车. 2.数据链路层:相当于货物核对单,表明里面有些什么东西,接受的时候确认一下是否正确(CRC检验). ...

  9. 关于Java中进程和线程的详解

    一.进程:是程序的一次动态执行,它对应着从代码加载,执行至执行完毕的一个完整的过程,是一个动态的实体,它有自己的生命 周期.它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而 ...

  10. JS高级前端开发群加群说明及如何晋级

    JS高级前端开发群加群说明 一.文章背景: 二. 高级群: 三. 加入方式: 四. 说明:   一.文章背景: 去年年初建了几个群,在不经意间火了,一直排在“前端开发”关键字搜索结果第一名.当然取得这 ...