一,启动docker后,搜索registry

[root@localhost source]# systemctl start docker
[root@localhost source]# docker search registry
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
registry The Docker Registry 2.0 implementation for s… 2873 [OK]

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,下载registry容器

1,下载

[root@localhost docker]# docker pull registry

2,查看本地的镜像:

[root@localhost docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry latest 708bc6af7e5e 6 weeks ago 25.8MB

三,启动registry

1,启动registry

[root@localhost docker]# docker run -d -p 5000:5000 -v /data/docker/registry:/var/lib/registry --privileged=true --restart=always --name registry registry:latest
0e48cc6c0871bf2d5a0ee0208d3e87ae0cf4706dada93c7e80133fa22f7bbaef
[root@localhost docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0e48cc6c0871 registry:latest "/entrypoint.sh /etc…" 7 seconds ago Up 5 seconds 0.0.0.0:5000->5000/tcp registry

2,查看registry的ip地址

[root@localhost docker]# docker inspect registry | grep IPAddress
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAddress": "172.17.0.2",

3,用浏览器访问5000端口,判断是否安装成功:

这个地址:

http://172.17.0.2:5000/v2/

四,查看私有库的镜像列表:

[root@localhost docker]# curl http://172.17.0.2:5000/v2/_catalog
{"repositories":[]}

五,我们制作一个基于centos8的nfs的镜像

参见:

docker19.03制作一个基于centos8的带有nfs4服务的镜像
地址:https://www.cnblogs.com/architectforest/p/12495958.html

六,上传一个镜像到私有库

我们把上面制作的镜像上传到我们搭建的私有库

1,给当前镜像打上tag:

[root@localhost ~]# docker tag nfsnginx:0.1 172.17.0.2:5000/nfsnginx:0.1

查看打tag后的效果

[root@localhost ~]# docker images | grep nfsnginx
172.17.0.2:5000/nfsnginx 0.1 fa72df9fb744 3 hours ago 328MB
nfsnginx 0.1 fa72df9fb744 3 hours ago 328MB

2,开始push

[root@localhost ~]# docker push 172.17.0.2:5000/nfsnginx:0.1
The push refers to repository [172.17.0.2:5000/nfsnginx]
Get https://172.17.0.2:5000/v2/: http: server gave HTTP response to HTTPS client

这个报错是什么?

Docker与Docker Registry交互默认使用https协议,

我们搭建的Docker Registry只提供http服务,

当和Registry私有仓库交互时会失败,

为解决这个问题,我们启动Docker时配置Registry不安全选项即可

说明:要用防火墙限制私有库的访问,不允许端口从公网上随便访问

3,解决上面的那个报错:

[root@localhost ~]# vi /etc/docker/daemon.json

增加一行:

"insecure-registries":["172.17.0.2:5000"]

看例子:

[root@localhost ~]# more /etc/docker/daemon.json
{
"registry-mirrors":["https://o3trwnyj.mirror.aliyuncs.com"],
"insecure-registries":["172.17.0.2:5000"]
}

然后重启docker服务:

[root@localhost ~]# systemctl restart docker

并再次启动容器

[root@localhost ~]# docker start registry
registry

4,再次push:

[root@localhost ~]# docker push 172.17.0.2:5000/nfsnginx:0.1
The push refers to repository [172.17.0.2:5000/nfsnginx]
28dd39094cf0: Pushed
0683de282177: Pushed
0.1: digest: sha256:98417504960cfd0c3ddbb61f18ac8ed7e4737136cc8640f1d24c0f8f5d4eb1fe size: 741

5,上传是否成功?我们从浏览器访问这个地址:

http://172.17.0.2:5000/v2/_catalog

响应内容为:

{"repositories":["nfsnginx"]}

可以确认已上传成功

6,查看已上传镜像的tag列表:

从浏览器访问这个地址:

http://172.17.0.2:5000/v2/nfsnginx/tags/list

说明:nfsnginx是我们所上传的镜像的名字

七,从私有库下载一个镜像

从另一台安装有docker的服务器上测试:

1,执行docker的pull命令:

[root@localhost liuhongdi]# docker pull 192.168.1.8:5000/nfsnginx:0.1
Error response from daemon: Get https://192.168.1.8:5000/v2/: http: server gave HTTP response to HTTPS client

说明:192.168.1.8是上面搭建registry的docker宿主机的ip

2,解决方法同上:

[root@localhost liuhongdi]# vi /etc/docker/daemon.json

增加一行:

"insecure-registries":["192.168.1.8:5000"]

然后重启docker:

[root@localhost liuhongdi]# systemctl restart docker

3,再次测试:

[root@localhost liuhongdi]# docker pull 192.168.1.8:5000/nfsnginx:0.1
0.1: Pulling from nfsnginx
8a29a15cefae: Already exists
b3f2d668510c: Pull complete
Digest: sha256:98417504960cfd0c3ddbb61f18ac8ed7e4737136cc8640f1d24c0f8f5d4eb1fe
Status: Downloaded newer image for 192.168.1.8:5000/nfsnginx:0.1

4,查看下载是否成功

[root@localhost liuhongdi]# docker images | grep nfsnginx
192.168.1.8:5000/nfsnginx 0.1 fa72df9fb744 4 hours ago 328MB

八,查看docker的版本

[root@localhost source]# docker --version
Docker version 19.03.7, build 7141c19

docker19.03搭建私有容器仓库的更多相关文章

  1. [转]Ubuntu18.04下使用Docker Registry快速搭建私有镜像仓库

    本文转自:https://blog.csdn.net/BigData_Mining/article/details/88233015 1.背景 在 Docker 中,当我们执行 docker pull ...

  2. Android业务组件化之Gradle和Sonatype Nexus搭建私有maven仓库

    前言: 公司的业务组件化推进的已经差不多三四个月的时间了,各个业务组件之间的解耦工作已经基本完成,各个业务组件以module的形式存在项目中,然后项目依赖本地的module,多少有点不太利于项目的并行 ...

  3. 【Docker】(4)搭建私有镜像仓库

    [Docker](4)搭建私有镜像仓库 说明 1. 这里是通过阿里云,搭建Docker私有镜像仓库. 2. 这里打包的镜像是从官网拉下来的,并不是自己项目创建的新镜像,主要测试功能 一.搭建过程 首先 ...

  4. 使用Sinopia搭建私有npm仓库

    使用Sinopia搭建私有npm仓库 在用npm装包的时候,每次都要下载一大堆,慢且不说,npm还老被墙,所以就想到在公司内部搭建npm仓库镜像.大概看了几个,觉得Sinopia最简单也好用,所以就使 ...

  5. 搭建私有Nuget仓库

    使用Nexus搭建私有Nuget仓库 https://www.cnblogs.com/Erik_Xu/p/9211471.html 前言 Nuget是ASP .NET Gallery的一员,是免费.开 ...

  6. 在阿里云上搭建私有GIT仓库

    在阿里云上搭建私有GIT仓库 年轻人就得好好学习,不能这么颓废 最近做项目练练手,用到了github, 但是github访问速度是真的慢啊,下载项目,下载一天了.所以呢,我是个成熟的人了,只好自己搭建 ...

  7. 详解docker实战之搭建私有镜像仓库 - kurbernetes

    1.实战目的 搭建企业私有的镜像仓库,满足从开发环境推送和拉取镜像.当我们使用k8s来编排和调度容器时,操作的基本单位是镜像,所以需要从仓库去拉取镜像到当前的工作节点.本来使用公共的docker hu ...

  8. [转] 使用HTTPS在Nexus Repository Manager 3.0上搭建私有Docker仓库

    FROM: https://www.hifreud.com/2018/06/06/03-nexus-docker-repository-with-ssl/ 搭建方式 搭建SSL的Nexus官方提供两种 ...

  9. docker 搭建私有云仓库

    docker搭建私有仓库   registry私有仓库 下载docker-distribution软件包 yum install epel-release yum install docker-dis ...

随机推荐

  1. synchronized底层是怎么实现的?

    前言 面试的时候有被问到,synchronized底层是怎么实现的,回答的比较浅,面试官也不是太满意,所以觉得要好好总结一下,啃啃这个硬骨头. synchronized使用场景 我们在使用synchr ...

  2. C enum(枚举)

    C enum(枚举) 枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读. 枚举语法定义格式为: enum 枚举名 {枚举元素1,枚举元素2,……}; 接下来我们举个例子,比如:一星期有 ...

  3. Django+pycharm+mysql 实现用户登录/注册(Django五)

    首先是让Django项目与mysql数据库初步建立连接 具体做法见:pycharm连接mysql(注意其中第二步MySQL驱动最好安装最新版的) 这里讲一下我在做这一步遇到的问题.一般Driver 那 ...

  4. 自定义 NSLog以便发版和调试

    问题 开发中用了大量的 NSLog,但是发布时想取消这些 NSLog 开发中是否经常用过 NSLog(@"%s", __FUNCTION__); 解决问题 新建 ExtendNSL ...

  5. fiddler工具介绍及证书设置

    fiddler 目录 1.Fiddler介绍 01.介绍 02.简单使用 03.结果状态码 介绍完了,接下来就到证书了 2.Fiddler证书设置 这就是fiddler证书设置的全部步骤了 1.Fid ...

  6. 预科班D9

    2020.09.17星期四 预科班D9 学习内容: 一.列表与字典的嵌套 大前提:将所有同学的信息存起来,取值需求 1.取第二个学生的性别 stus_info = [ {"name" ...

  7. 分布式系统监视zabbix讲解八之自动发现/自动注册

    自动发现(LLD) 概述 自动发现(LLD)提供了一种在计算机上为不同实体自动创建监控项,触发器和图形的方法.例如,Zabbix可以在你的机器上自动开始监控文件系统或网络接口,而无需为每个文件系统或网 ...

  8. 5.Storm-集群配置及任务提交

  9. Redis5设计与源码分析读后感(三)跳跃表

    一.引言 有序集合在日常开发中相当常见,比如做排名等相关的功能,肯定要用到排序的功能,那么常见底层实现有很多种: 数组 :不便于元素的插入和删除 链表 :查询效率低,需要遍历所有元素 平衡树OR红黑树 ...

  10. 静态代理、jdk动态代理、cglib动态代理

    一.静态代理 Subject:抽象主题角色,抽象主题类可以是抽象类,也可以是接口,是一个最普通的业务类型定义,无特殊要求. RealSubject:具体主题角色,也叫被委托角色.被代理角色.是业务逻辑 ...