转:http://blog.csdn.net/felix_yujing/article/details/51564739

新版 registry v2对镜像存储格式进行了重新设计,并且和旧版还不兼容。registry v2是由go语言开发,docker从1.6版本开始支持registry v2,之前python开发的老版registry在网上已被标为废弃了(没有维护更新,但也可以用)。

之前在测试环境搭建了一个老版的registry,用了也比较久了。为了跟上技术的脚步,也准备今后使用新版registry v2。由于对旧版是不兼容的,所以之前仓库的数据目录还不能直接拿来挂载,只好重新做个新的,镜像只好等以后慢慢再放上去了。下面对我这次配置的步骤简单的介绍一下。

0. 服务器环境
本次使用centos7.1的操作系统,服务器IP假设为:192.168.0.100
预先装好docker服务,操作如下:

  1. yum install docker -y
  2. systemctl enable docker
  3. systemctl start docker

1. 获取最新的registry的容器
了解到目前最新版为2.4.1,于是直接使用docker pull命令从公用仓库去拉即可

  1. docker pull registry:2.4.1

2. 运行registry:2.4.1容器
这里需要注意的是新registry仓库数据目录的位置。之前老版的位置是/tmp/registry,hub.docker.com上的演示命令里写的是/tmp/registry-dev,其实这个不对。试验证明,新registry的仓库目录是在/var/lib/registry,所以运行时挂载目录需要注意。

  1. docker run -d -p 5000:5000 --restart=always \
  2. -v /opt/registry-var/:/var/lib/registry/ \
  3. registry:2.4.1

-v选项指定将/opt/registry-var/目录挂载给/var/lib/registry/
当使用curl http://192.168.0.100:5000/v2/_catalog能看到json格式的返回值时,说明registry已经运行起来了。

3. 修改配置文件以指定registry地址
上面registry虽然已经运行起来了,但是如果想用push命令上传镜像是会报错的,需要在配置文件中指定registry的地址。在/etc/sysconfig/docker文件中添加一下配置:

  1. ADD_REGISTRY='--insecure-registry 192.168.0.100:5000'

为了配置简单,省去安全相关的配置,这里使用--insecure-registry选项。
修改配置文件后,一定要重启docker服务才能生效,所以:

  1. systemctl restart docker

这时再push就可以上传镜像到所搭建的registry仓库了。需要注意的是,上传前要先给镜像tag一个192.168.0.100:5000/为前缀的名字,这样才能在push的时候存到私库。

  1. docker tag docker.io/registry:2.4.1 192.168.0.100:5000/registry:2.4.1
  2. docker push 192.168.0.100:5000/registry:2.4.1

4. 配置带用户权限的registry
到上面为止,registry已经可以使用了。如果想要控制registry的使用权限,使其只有在登录用户名和密码之后才能使用的话,还需要做额外的设置。
registry的用户名密码文件可以通过htpasswd来生成:

  1. mkdir /opt/registry-var/auth/
  2. docker run --entrypoint htpasswd registry:2.4.1 -Bbn felix felix  >> /opt/registry-var/auth/htpasswd

上面这条命令是为felix用户名生成密码为felix的一条用户信息,存在/opt/registry-var/auth/htpasswd文件里面,文件中存的密码是被加密过的。
使用带用户权限的registry时候,容器的启动命令就跟上面不一样了,将之前的容器停掉并删除,然后执行下面的命令:

  1. docker run -d -p 5000:5000 --restart=always \
  2. -v /opt/registry-var/auth/:/auth/ \
  3. -e "REGISTRY_AUTH=htpasswd" \
  4. -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
  5. -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
  6. -v /opt/registry-var/:/var/lib/registry/ \
  7. registry:2.4.1

这时,如果直接想查看仓库信息、pull或push都会出现权限报错。必须先使用docker login 命令来登录私有仓库:

  1. docker login 192.168.0.100:5000

根据提示,输入用户名和密码即可。如果登录成功,会在/root/.docker/config.json文件中保存账户信息,这样就可以继续使用了。

转载于:https://www.cnblogs.com/guxiaobei/p/8295270.html

docker 笔记 (6)搭建本地registry相关推荐

  1. 搭建本地 Registry - 每天5分钟玩转 Docker 容器技术(20)

    Docker Hub 虽然非常方便,但还是有些限制,比如: 需要 internet 连接,而且下载和上传速度慢. 上传到 Docker Hub 的镜像任何人都能够访问,虽然可以用私有 reposito ...

  2. Docker容器之搭建本地私有仓库

    Docker容器之搭建本地私有仓库 前言 一.首先下载registry镜像 二.在daemon.json文件中添加私有镜像仓库的地址并重启 三.创建registry容器并开放端口 四.给镜像打标签后上 ...

  3. docker搭建本地 Registry

    2019独角兽企业重金招聘Python工程师标准>>> 参考资料 https://www.cnblogs.com/CloudMan6/p/6902325.html Docker Hu ...

  4. linux笔记之 搭建本地yum源,网卡的基本操作

    yum本地仓库 1.下载安装 vsftpd 软件存放目录/mnt/cdrom/Packages rpm -q vsftpd 查看是否安装vsftpd 没安装使用yum安装 yum -y install ...

  5. docker 推送到本地仓库_Docker_学习笔记系列之仓库

    docker仓库分公有和私有之分,本文主要介绍如何搭建私有仓库 1. 简介 Docker仓库,类似于yum仓库,是用来保存镜像的仓库.为了方便的管理和使用docker镜像,可以将镜像集中保存至Dock ...

  6. Mac下的Docker及Kubernetes(k8s)本地环境搭建与应用部署、管理界面kubernetes-dashboard

    Mac下的Docker及Kubernetes环境搭建与应用部署 Mac安装docker: brew cask install docker 当然也可以直接去官网下载docker的pkg文件安装 Mac ...

  7. docker搭建私有registry

    搭建docker的私有registry 1.   registry简介 Docker在2015年推出了distribution项目,即Docker Registry 2.相比于old registry ...

  8. docker mysql 操作_[Docker] Docker 快速搭建本地MySQL开发环境

    [Docker] Docker 快速搭建本地MySQL开发环境 关于 Docker 的安装使用本文不再赘述,有兴趣的可以通过官网或是浏览我的专栏文章了解.今天着重给大家介绍下如何利用Docker快速搭 ...

  9. docker 搭建本地 coredns 服务器

    coredns简介 CoreDNS是一款灵活可扩展的 DNS 服务器,并且基于插件架构,具有强大的模块化能力.其快速,简单,可扩展等特性也非常受人欢迎. CoreDNS 最初是一个单独的项目,由Mie ...

最新文章

  1. 如何在Python中匹配最接近的字符串
  2. DSP专家给你一个选择FPGA的理由(让人看了热血沸腾的一篇科普文章)
  3. 解读2019华为第001号文件:AI时代软件开发的第一要义是可信
  4. Java面试题阶段汇总
  5. 百战程序员试题与答案(仅供参考)
  6. Linux上搭建伪集群 Hadoop3.1
  7. 打印pdf就一页_PDF 文件转换工具
  8. 系统学习机器学习之线性判别式(三)--广义线性模型(Generalized Linear Models)
  9. matlab车牌定位与识别,基于matlab车牌的定位与分割识别程序概要
  10. 麒麟系统stty测试串口
  11. 大话设计模式笔记(二十四)の解释器模式
  12. 4k纸是几厘米乘几厘米_4k纸有多大?长宽各多少厘米?
  13. 关于海神阁阁主真实身份的推测
  14. python从邮箱获取指定邮件_用python提取并统计指定邮箱里的特定邮件 | 学步园
  15. CSS的世界(十四)
  16. 系统可用性分析方法与设计模板
  17. 链栈的创建,入栈,出栈,获取栈顶元素
  18. 【学习笔记】噬菌体的应用与展望
  19. Android 动态改变SeekBar进度条颜色与滑块颜色
  20. iPhone 4S用移动卡?手机网络常识普及

热门文章

  1. 『03网络』 实验一:多功能浏览器的使用和个人Blog的创建和使用
  2. 2019机器学习比赛_2019顶尖的机器学习课程
  3. 3软件测试原理与软件缺陷
  4. JavaScript有哪三部分组成?
  5. 探索机器学习的公平性(Delayed Impact of Fair Machine Learning)论文 pdf
  6. Windows10安装Mysql5.7.19.0 msi 版本报错
  7. 基于Guava实现的文件复制
  8. express中的bin/www文件详解
  9. centos下LAMP之源码编译安装httpd
  10. 将表里的数据批量生成INSERT语句的存储过程 增强版