docker registry的建立

docker registry的建立docker registry,免费docker registry,docker registry v2,docker registry api,docker registry 搭建,docker registry 管理,docker registry ui,docker registry web,docker pull registry
社会化媒体营销 > docker registry的建立

docker registry的建立

1)节省网络带宽,针对于每个镜像不用每个人都去仓库上面去,只需要从私有仓库中即可;

2)镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用。

目前Docker Registry已经升级到了v2,最新版的Docker已不再支持v1Registry v2使用Go语言编写,在性能和安全性上做了很多优化,重新设计了镜像的存储格式。如果需要安装registry v2,只需registry:2.2即可。Docker官方的工具docker-registry可以用于构建私有的镜像仓库。废话不多说了,下面记录下Docker私有仓库构建的过程:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

选择一台服务器(内外网地址:192.168.1.23)作为注册服务器,用于搭建私有仓库。(该机器要安装了Docker环境)

1)从Docker官方仓库里registry镜像

[root@localhost ~]# docker pull registry:2.2

----------------------------------------------------------------

或者:

[root@localhost ~]# docker pull registry

[root@localhost ~]# docker pull registry:2.1.1

----------------------------------------------------------------

完之后,可以通过该镜像启动一个容器

[root@localhost ~]# docker images

REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE

tomcat7              latest              97c6a43dd69c        12 minutes ago      562.3 MB

docker.io/registry   2.2                 ad379b517aa6        14 months ago       224.5 MB

         

默认情况下,会将私有仓库存放于容器内的/tmp/registry目录下,这样如果容器被删除,则存放于容器中的镜像也会丢失。

所以一般情况下会指定本地一个目录挂载到容器内的/tmp/registry下,如下:

[root@localhost ~]# docker run -d --name=my_registry -p 5000:5000 -v /opt/data/registry:/tmp/registry docker.io/registry:2.2

9fe45329bda17f61da04e6e8d2faf124fb22665a25270421bb8979a419809446

         

[root@localhost ~]# docker ps

CONTAINER ID        IMAGE                    COMMAND                  CREATED              STATUS              PORTS                    NAMES

d8e98b1068cd        docker.io/registry:2.2   "/bin/registry /etc/d"   About a minute ago   Up About a minute   0.0.0.0:5000->5000/tcp   my_registry

         

由上可以看到,已经启动了一个容器,地址为:192.168.1.23:5000。

         

2)测试

接下来可以把一个本地镜像push(如下面的tomcat7镜像)到私有仓库中。

[root@localhost ~]# docker images

REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE

tomcat7              latest              97c6a43dd69c        18 minutes ago      562.3 MB

docker.io/registry   2.2                 ad379b517aa6        14 months ago       224.5 MB

         

修改一下该镜像的tag标识。

[root@localhost ~]# docker tag tomcat7 192.168.1.23:5000/tomcat7

      

[root@localhost ~]# docker tag tomcat7 192.168.1.23:5000/tomcat7       //修改了tag后的镜像若要删除,docker rmi后面不能用镜像ID了,需要用docker rmi 192.168.1.23:5000/tomcat7:latest

REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE

192.168.1.23:5000/tomcat7   latest              97c6a43dd69c        18 minutes ago      562.3 MB

tomcat7                     latest              97c6a43dd69c        18 minutes ago      562.3 MB

docker.io/registry          2.2                 ad379b517aa6        14 months ago       224.5 MB

      

接下来把上面修改tag后的镜像上传到私有仓库。

[root@localhost ~]# docker push 192.168.1.23:5000/tomcat7

The push refers to a repository [192.168.1.23:5000/tomcat7]

unable to ping registry endpoint https://192.168.1.23:5000/v0/

v2 ping attempt failed with error: Get https://192.168.1.23:5000/v2/: http: server gave HTTP response to HTTPS client

v1 ping attempt failed with error: Get https://192.168.1.23:5000/v1/_ping: http: server gave HTTP response to HTTPS client

         

出现上面错误的原因分析:

因为Docker从1.3.X之后,与docker registry交互默认使用的是https,然而此处搭建的私有仓库只http服务,所以当与私有仓库交互时就会报上面的错误。

为了解决这个问题需要在启动docker server时增加启动参数为默认使用http访问。

需要在docker的配置文件/etc/sysconfig/docker (ubuntu系统中的docker配置文件时/etc/default/docker )添加参数“--insecure-registry=192.168.1.23:5000”。

-----------------------------------------------------------------------------------------------------------

温馨提示:

这个是在客户机的docker配置文件里添加的(即上传镜像到私有仓库里或从私有仓库镜像的客户机)。

比如说在A机器它的镜像上传到192.168.1.23的私有仓库上或从该私有仓库镜像,那么就在A机器的本地docker配置文件中添加。

我这里测试用的是同一台机器,即将注册机192.168.1.23本机的镜像上传到它的仓库内。

-----------------------------------------------------------------------------------------------------------

[root@localhost ~]# vim /etc/sysconfig/docker

.......

OPTIONS='--selinux-enabled --log-driver=journald'

改为

OPTIONS='--selinux-enabled --log-driver=journald --insecure-registry=192.168.1.23:5000'

         

[root@localhost ~]# service docker restart

         

由于docker服务重启后,所有容器都会被关闭。所以需要在docker重启后再次启动容器

[root@localhost ~]# docker start my_registry

my_registry

[root@localhost ~]# docker ps

CONTAINER ID        IMAGE                    COMMAND                  CREATED              STATUS              PORTS                    NAMES

d8e98b1068cd        docker.io/registry:2.2   "/bin/registry /etc/d"   About a minute ago   Up About a minute   0.0.0.0:5000->5000/tcp   my_registry

         

再次提交到私有仓库

[root@localhost ~]# docker push 192.168.1.23:5000/tomcat7

The push refers to a repository [192.168.1.23:5000/tomcat7]

c6d7ce9e90d7: Pushed

34e7b85d83e4: Pushed

latest: digest: sha256:5fdcbaf254cb44dd26645f606cccea8de76118baff03485e40853c691a15956d size: 720

       

上面命令执行无误后,就表示镜像已经push到私有仓库中去了。

查看私有仓库里的镜像(一定要保证下面能查看到仓库里有镜像!如果仓库里没有镜像,那么客户端机器就无法从该私有仓库镜像了)

[root@localhost ~]# curl -XGET https://192.168.1.23:5000/v2/_catalog    //即该私有仓库里有tomcat7镜像 

{"repositories":["tomcat7"]}

[root@localhost ~]# curl -XGET https://192.168.1.23:5000/v2/tomcat7/tags/list

{"name":"tomcat7","tags":["latest"]}

或者浏览器里访问(103.110.186.23是注册机的外网ip,iptables防火墙内开放5000端口访问):

http://103.110.186.23:5000/v2/_catalog

http://103.110.186.23:5000/v2/tomcat7/tags/list

     

现在可以将本地的tomcat7和192.168.1.23:5000/tomcat7镜像都删除,然后从私有仓库中

[root@localhost ~]# docker rmi tomcat7

[root@localhost ~]# docker rmi 192.168.1.23:5000/tomcat7

     

[root@localhost ~]# docker pull 192.168.1.23:5000/tomcat7

[root@localhost ~]# docker images

REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE

192.168.1.23:5000/tomcat7   latest              5hc8a2ip413w        3 days ago          562.3 MB

     

-----------------------------------------------------------------------------

这样,也就可以在同一局域网内的其他机器上,从该私有仓库中pull下来该镜像。

比如从192.168.1.17上拉取该私有仓库的tomcat镜像进行容器创建(注意,要在该机器的/etc/sysconfig/docker配置文件里添加--insecure-registry=192.168.1.23:5000参数) 详细见设置http访问仓库

[root@linux-node2 ~]# docker pull 192.168.1.23:5000/tomcat7

       

[root@linux-node2 ~]# docker images

REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE

192.168.1.23:5000/tomcat7   latest              2ec9e2eb978a        3 days ago          562.3 MB

       

这样就搭建了Docker私有仓库,上面搭建的仓库是不需要认证的,我们可以结合nginx和https实现认证和加密功能。

点击显示全文

  • Docker 的使用总结

    docker pull <image> & :从 docker registry server 中下拉 image [root@...镜像创建容器 docker run –d <镜像名称> [root@physics-85 ~]# docker run...

    贡献者:border_chen
    182123
  • Docker自建内部仓库

    Docker自建内部仓库_计算机软件及应用_IT/计算机_专业资料。docker创建自有镜像仓库...安装 Docker-registry git clone https://github.com/dotcloud/docker-registry ...

    贡献者:jasko
    216039
  • docker学习笔记

    docker registry server 中下拉 image push <image|repository> 推送一个 image ...显示最后一次创建的 container,包括未运行的 ps -a 显示所有的 container,包括...

    贡献者:gaoyongat2008
    394001
  • CentOS系统下docker的安装配置及使用详解

    从 docker registry server 中下拉 image [root@localhost /]# docker pull ...使用镜像创建容器 [root@localhost /]# docker run chug/ubuntu12.10x64 /...

    贡献者:NathanHD
    165711
  • 非常详细的 Docker 学习笔记

    删除 Volumes 9.1 容器命名 9.2 链接容器 10.1 快速构建 10.2 不使用容器构建 registry 10.3 提交指定容器到私有库 一、Docker 简介 Docker 两个主要部件: ?...

    贡献者:a_a_a_a_a_t
    943743
  • Docker自建私有仓库

    Docker自建私有仓库_计算机软件及应用_IT/计算机_专业资料。Docker 自建私有仓库 版本号:V1.0 撰写人: 附件数:1 审核人: 密级:一般 审批人: 1、下载 registry...

    贡献者:piggy6ou
    837705
  • docker私有库Docker Registry设置

    Docker 私有库设置 官方镜像下的简单示例本节中,将创建一个 Container 来运行 Docker 的官方 Registry 镜像。你将推送《Push》 一个镜像到这个 Registry 服务器,...

    贡献者:messiah0088
    333678
  • docker 搭建registry 仓库 V2

    文件中添加一下配置: ADD_REGISTRY='--insecure-registry registry 机器 ip:5000' 上面方法如果不生效使用下面方法,解决方法: 在”/etc/docker/“目录下,创建”...

    贡献者:nieli1120
    142804
加载中...
加载中...
  • xpath详解总结,很全面

    请看一个典型的 XPath 查询表达式:/messages/message//child:: node《》[@id=0],其中/messages/message 是路径《绝对路径以"/ "开始》,child::是轴表示在子节点...

  • 给xpath添加正则表达式匹配函数

    public override IXsltContextVariable ResolveVariable《string prefix, string name》 《 // Create an instance of an XPathExtensionVariable. XPathExtensionVariable ...

  • XPath语法规则及实例

    XPath语法规则及实例_IT/计算机_专业资料。XPath 语法规则术语: 一、 XPath 术语: 1. 节点: 在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理...

  • Java中的XPath学习笔记

    Rowling</author> <year>2005</year> <price>29.99</price> </book> </bookstore> XPath 语法 XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点...

  • python+xpath笔记

    python+xpath笔记_计算机软件及应用_IT/计算机_专业资料。一、选取节点 常用的路劲表达式: 表达式 描述 实例 选取了 div 节点的所有子节 点 从根节点上选取 div ...

24小时热门信息
  • docker使用手册

    docker使用手册_计算机软件及应用_IT/计算机_专业资料。docker使用手册及常用命令 概念Docker daemon Docker images Docker client Docker Registries Docker containers ...

    贡献者:w19821216w
    560967
  • Docker 的使用总结

    docker 在线安装与启动 1.1 安装 docker [root@localhost /]#yum install –y epel-release [root@localhost /]# yum -y install docker-io 1.2 启动 ...

    贡献者:border_chen
    182123
  • Docker常用命令汇总

    Docker常用命令汇总_计算机软件及应用_IT/计算机_专业资料。超实用:Docker常用命令汇总 Docker 常用命令汇总一、查看 docker 信息 1、查看 docker 版本 docker version...

    贡献者:zq_rh
    155626
  • 关于docker的15个小tip

    获取最近运行容器的 id 这是我们经常会用到的一个操作,按照官方示例,你可以这样做《环境 ubuntu》: $ ID=$《docker run ubuntu echo hello world》 hello world ...

    贡献者:isle2013
    407193
  • docker课程介绍.doc

    docker课程介绍.doc_IT认证_资格考试/认证_教育专区。云计算 Docker 容器技术应用培训课程大纲 1、培训对象:云计算架构师、运营维护工程师、开发工程师 2、培训目标...

    贡献者:超级jack0070
    338015
  • docker环境搭建

    docker环境搭建_计算机软件及应用_IT/计算机_专业资料。docker环境安装全文 Docker 是 PasS 提供商 DoctCloud 开源的一个基于 LXC 的高级容 器引擎,源代码托管在 ...

    贡献者:张小飞705
    767694
精彩推荐
  • 客户关系管理试题及答案《史上最全!!》客户关系管理试题及答案《史上最全!!》

    CRM 系统通过了解客户的需求整合企业内部生产制造能力,提高企业生产效率从技术角度上看,指帮助 企业有组织性的管理客户关系的方法、软件系统以至互联网设施等。 15、...贡献者:ynlebfjs954102346328

  • 客户关系管理《CRM》系统设计报告客户关系管理《CRM》系统设计报告

    客户关系管理《CRM》系统设计报告 摘 要 通过CRM系统分析、 本公司需求分析及考察CRM的一般系统与实际业务流程关 系,确定本公司CRM系统设计定位于基于部门应用、运营...贡献者:八百客CRM143860

  • CRM客户关系管理系统建设方案《完整版》CRM客户关系管理系统建设方案《完整版》

    CRM客户关系管理系统建设方案《完整版》_计算机软件及应用_IT/计算机_专业资料。CRM客户关系管理系统建设方案《完整版》 CRM 客户关系管理系统 建设方案 商务代表:沈言炎...贡献者:melody_syyxx171113

  • 客户关系管理《CRM》产生背景客户关系管理《CRM》产生背景

    客户关系管理《CRM》产生背景_企业管理_经管营销_专业资料。十几年市场竞争的磨练,尤其是中国加入 WTO 在即,竞争的压力使得中国的企业对于 可以提高企业竞争力的各种...贡献者:89513380278226

  • CRM资料CRM资料

    CRM资料_互联网_IT/计算机_专业资料。CRM >CRM 软件的基本功能包括客户管理、联系人管理、时间管理、潜在客户管理、销售管 理、电话销售、营销管理、电话营销、客户...贡献者:zhiminggod188569

  • 客户关系管理客户关系管理

    CRM 管理 包括访客名片的建立、 对话记录的管理 、熟客识别等为企业建立良好的客 情关系数据库,帮助企业有效维护老客户和挖掘潜在客户。 河北工商银行集成实现客户...贡献者:新菲尔伯爵390139

  • CRM简介CRM简介

    信息系统开发与设计 CRM 系统简介一 、 主要思想客户关系管理《 Customer Relationship Management, CRM》, 是以 信息技术为媒介, 以客户及其价值为中心, 通过管理和...贡献者:holiter337996

  • 实施CRM过程中的问题及对策实施CRM过程中的问题及对策

    理解 CRM《客户关系管理》的含义是实施 CRM 的前提与依据。CRM 首先是一种管 理理念,其核心思想是将企业的客户《包括最终客户、分销商和合作伙伴》作为最重要的 ...贡献者:墨镜小13142339

手机版 | 欢迎来到社会化媒体营销
RSS订阅