前言

本文讲解搭建docker的私有仓库,和Mavan的管理一样,Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库

一、环境

ip 主机名 操作系统 角色
192.168.6.131 node2.jacky.com 7.3.1611 客户端
192.168.6.132 node3.jacky.com 7.3.1611 私有仓库

二、搭建

2.1、在132机器上下载registry镜像

docker pull registry

2.2、防火墙添加运行5000端口

iptables -I INPUT  -p tcp --dport  -j ACCEPT

2.3、创建registry容器,并启动

docker run -d -p : --privileged=true -v /opt/registry:/tmp/registry registry  

说明:

  • 默认情况下,会将仓库存放于容器内的/tmp/registry目录下,这样如果容器被删除,则存放于容器中的镜像也会丢失,所以我们一般情况下会指定本地一个目录挂载到容器内的/opt/registry下
  • –privileged=true :CentOS7中的安全模块selinux把权限禁掉了,参数给容器加特权,不加上传镜像会报权限错误(OSError: [Errno 13] Permission denied: ‘/tmp/registry/repositories/liibrary’)或者(Received unexpected HTTP status: 500 Internal Server Error)错误

2.4、客户端修改/etc/sysconfig/docker文件,在后面追加,不加会报https证书错误,然后重启docker

OPTIONS='--insecure-registry 192.168.6.132:5000'    #CentOS 7系统
other_args='--insecure-registry 192.168.6.132:5000' #CentOS 6系统

三、测试

3.1、把本地镜像jacky/mytomcat:1.0的tag

docker tag 3d95a80ccbda 192.168.6.132:/jacky/mytomcat:1.2

结果如下

注意:前缀一定要私有仓库Ip:端口/,否则上传会报错

3.2、上传镜像192.168.6.132:5000/jacky/mytomcat:1.2到私有仓库

docker push 192.168.6.132:/jacky/mytomcat:1.2

3.3、删除该镜像,然后重新下载该镜像

[root@node2 jacky]# docker rmi 192.168.6.132:/jacky/mytomcat:1.2
Untagged: 192.168.6.132:/jacky/mytomcat:1.2
Untagged: 192.168.6.132:/jacky/mytomcat@sha256:da9f7e620ade2c1fb3c4c516cf6c8303045699dba58759f4cf15408a2858228f
[root@node2 jacky]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jacky/mytomcat 1.0 3d95a80ccbda days ago 655.3 MB
jacky/mytomcat 1.1 3d95a80ccbda days ago 655.3 MB
jacky/ubuntu 14.05 ff41e3aca80b days ago 209.1 MB
jacky/ubuntu dev ff41e3aca80b days ago 209.1 MB
jacky/centos v3 67a8ec824059 days ago 326.3 MB
jacky/ubuntu v2 9634808b727b days ago 137.2 MB
docker.io/nginx latest 40960efd7b8f weeks ago 108.4 MB
docker.io/ubuntu 14.04 3aa18c7568fc weeks ago MB
docker.io/httpd latest 74ad7f48867f weeks ago 177.3 MB
docker.io/debian wheezy f47fe1c60a2f weeks ago 85.13 MB
docker.io/busybox latest 6ad733544a63 weeks ago 1.129 MB
docker.io/centos 7.2. 0a2bad7da9b5 weeks ago 194.6 MB
docker.io/ubuntu 15.10 9b9cb95443b5 months ago 137.2 MB
[root@node2 jacky]# docker pull 192.168.6.132:/jacky/mytomcat:1.2
Trying to pull repository 192.168.6.132:/jacky/mytomcat ...
sha256:da9f7e620ade2c1fb3c4c516cf6c8303045699dba58759f4cf15408a2858228f: Pulling from 192.168.6.132:/jacky/mytomcat
Digest: sha256:da9f7e620ade2c1fb3c4c516cf6c8303045699dba58759f4cf15408a2858228f
Status: Downloaded newer image for 192.168.6.132:/jacky/mytomcat:1.2
[root@node2 jacky]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.6.132:/jacky/mytomcat 1.2 3d95a80ccbda days ago 655.3 MB
jacky/mytomcat 1.0 3d95a80ccbda days ago 655.3 MB
jacky/mytomcat 1.1 3d95a80ccbda days ago 655.3 MB
jacky/ubuntu 14.05 ff41e3aca80b days ago 209.1 MB
jacky/ubuntu dev ff41e3aca80b days ago 209.1 MB
jacky/centos v3 67a8ec824059 days ago 326.3 MB
jacky/ubuntu v2 9634808b727b days ago 137.2 MB
docker.io/nginx latest 40960efd7b8f weeks ago 108.4 MB
docker.io/ubuntu 14.04 3aa18c7568fc weeks ago MB
docker.io/httpd latest 74ad7f48867f weeks ago 177.3 MB
docker.io/debian wheezy f47fe1c60a2f weeks ago 85.13 MB
docker.io/busybox latest 6ad733544a63 weeks ago 1.129 MB
docker.io/centos 7.2. 0a2bad7da9b5 weeks ago 194.6 MB
docker.io/ubuntu 15.10 9b9cb95443b5 months ago 137.2 MB
[root@node2 jacky]#

可以看到,重新下载了

四、查询私有仓库镜像

在Private Registry2中查看或检索Repository或images,将不能用docker search,会报下边的错误

[root@node2 jacky]# docker search 192.168.6.132:/
Error response from daemon: Unexpected status code
[root@node2 jacky]# curl http://192.168.6.132:5000/v2/_catalog
{"repositories":["jacky/mytomcat"]}
[root@node2 jacky]# curl http://192.168.6.132:5000/v2/jacky/mytomcat/tags/list
{"name":"jacky/mytomcat","tags":["1.2"]}
[root@node2 jacky]#

docker探索-docker私有仓库搭建(九)的更多相关文章

  1. Docker 之registry私有仓库搭建

    Docker 之registry私有仓库搭建 官方提供的私有仓库docker registry用法 https://yeasy.gitbooks.io/docker_practice/reposito ...

  2. docker探索-Docker 1.13 编排能力进化(十三)

     简介  docker stack deploy和docker-compose up,这两个命令都是操作compose的yml文件的,有什么区别?想知道这个问题,看下面文章 https://yq.al ...

  3. docker探索-docker安装运行tomcat(六)

    前言      本地已经搭建好了,tomcat容器,本来想自己写一篇,在开源中国一篇不错的教程,就转载过来了 本文转自:https://my.oschina.net/sunchp/blog/61652 ...

  4. docker探索-docker容器基本操作(五)

    1.创建一个容器并启动 1.1.docker hello word Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序. 输出Hello world ...

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

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

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

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

  7. Docker 本地私有仓库搭建:

    Docker 本地私有仓库搭建: 创建数据卷目录: mkdir /home/sky/registry 用registry镜像启动容器: docker run -d -p 5000:5000 -v /h ...

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

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

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

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

随机推荐

  1. Mac 安装任何来源的文件

    1.Mac 安装任何来源的文件 安装软件提示文件损坏怎么处理,打开 DMG 文件提示损坏怎么处理,来自不信任的开发者怎么处理,macOS Sierra 如何安装任何来源的文件. 非常肯定的告诉您不是我 ...

  2. Kafka生产环境中的错误

    最近在处理日志收集任务时,发现前端服务器用flume进行收集,逐步把所有的服务器都增加上.增加的差不多时.Kafka报了如下类似错误: 709 [main] WARN kafka.producer.a ...

  3. C语言中的 (void*)0 与 (void)0

    前几天看到一个宏, 它大概是这样的: #define assert_param(expr) ((expr) ? (void)0 : assert_failed((u8 *)__FILE__, __LI ...

  4. Java 8 Streams filter examples

    1. Streams filter() and collect() package com.mkyong.java8; import java.util.Arrays;import java.util ...

  5. 是时候用PerconaDB替换MySQL了

    Percona数据库服务器是MySQL的增强版,替代MySQL并不复杂. 一.PerconaDB的特性 1)查询速度更快,数据的一致性更好 2)服务器运行及其稳定 3)可以延迟分片,或者避免分片 4) ...

  6. MySql(十一):MySQL性能调优——常用存储引擎优化

    一.前言 MySQL 提供的非常丰富的存储引擎种类供大家选择,有多种选择固然是好事,但是需要我们理解掌握的知识也会增加很多.本章将介绍最为常用的两种存储引擎进行针对性的优化建议. 二.MyISAM存储 ...

  7. jQuery学习笔记(jquery.simplemodal插件)

    官网地址:http://www.ericmmartin.com/ SimpleModal是一个轻量级的jQuery插件,它为模式窗口的开发提供了一个强有力的接口,可以把它当作模式窗口的框架.Simpl ...

  8. 【Android开发】之Android环境搭建及HelloWorld

    原文链接:http://android.eoe.cn/topic/android_sdk Android开发之旅:环境搭建及HelloWorld Android开发之旅:环境搭建及HelloWorld ...

  9. 如何判断 ios设备的类型(iphone,ipod,ipad)

    功能函数: -(bool)checkDevice:(NSString*)name { NSString* deviceType = [UIDevice currentDevice].model; NS ...

  10. IOS开发----生成静态库(.a)

    由于iPhone控件的极度匮乏和自定义组件在重用上的限制,在过去的项目中我们积累了大量的“纯代码”组件——因为IB本身的限制,我们无法把这些组件封装为IB组件库(本来我们想通过分发xib文件的方式重用 ...