9、Docker私有registry
Docker Registry分类
Docker 默认是使用https的,但是如果在自己得私有局域网中,你指明使用http也是可以的。
Registry主要的作用是托管镜像;
运行docker registry的方式一:
registry运行在容器中,容器的文件是随着容器的消息而被删除。所以要为registry定义一个存储卷,这个存储卷不要放在docker host本地,而是要使用网络存储。
运行docker registry的方式二演示:
注意在node2上创建
[root@node2 ~]# yum info docker-registry //查看registry的版本号
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors..com
* epel: mirror.lzu.edu.cn
* extras: mirrors..com
* updates: mirror.lzu.edu.cn
Available Packages
Name : docker-registry
Arch : x86_64
Version : 0.9.
Release : .el7
Size : k
Repo : extras//x86_64
Summary : Registry server for Docker
URL : https://github.com/docker/docker-registry
License : ASL 2.0
Description : Registry server for Docker (hosting/delivering of repositories and images).
[root@node2 ~]# yum install docker-registry
虽然安装的是rigstry,但是包名是 docker-ditribution 上述版本与docker官网的最新版本相差无几 https://hub.docker.com/_/registry?tab=tags;
[root@node2 ~]# rpm -ql docker-distribution
/etc/docker-distribution/registry/config.yml //配置文件
/usr/bin/registry
/usr/lib/systemd/system/docker-distribution.service
/usr/share/doc/docker-distribution-2.6.
/usr/share/doc/docker-distribution-2.6./AUTHORS
/usr/share/doc/docker-distribution-2.6./CONTRIBUTING.md
/usr/share/doc/docker-distribution-2.6./LICENSE
/usr/share/doc/docker-distribution-2.6./MAINTAINERS
/usr/share/doc/docker-distribution-2.6./README.md
/var/lib/registry //存放数据路径
[root@node2 ~]# vim /etc/docker-distribution/registry/config.yml
version: 0.1
log:
fields:
service: registry //服务
storage:
cache:
layerinfo: inmemory //缓存在内存中
filesystem:
rootdirectory: /var/lib/registry //数据存储路径
http:
addr: :5000 //5000是端口,地址没有给出表示本机所有可用地址,这里是http协议,标准端口应该是80端口,如果是https协议则标准端口是443
[root@node2 ~]# systemctl start docker-distribution
[root@node2 ~]# ss -tnl | grep 5000
LISTEN 0 128 :::5000 :::*
以上docker私有仓库就准备好了
[root@node1 ~]# docker image ls //显示node1制作的镜像,把node1服务器上的镜像poll到node2的仓库里面
REPOSITORY TAG IMAGE ID CREATED SIZE
tinyhttpd v0.- c0c7f3d670e2 hours ago .28MB //tinyhttpd这里标记的都是docker hub的标记,而且是顶层仓库,是无法直接推到私有仓库的,要打标
tinyhttpd v0.- 31c87ab706ef hours ago .27MB
tinyhttpd v0.- 182fd6cb55e0 hours ago .27MB
tinyhttpd v0.- a4edf21d7f10 hours ago .27MB
tinyhttpd v0.- ffd35e42c975 hours ago .29MB
tinyhttpd v0.- 36fff46e7087 hours ago .24MB
tinyhttpd v0.- 948f2959ddb4 days ago .22MB
tinyhttpd v0.- 026022e873de days ago .2MB
beisen/httpd v0. bf9c668b1196 weeks ago .2MB
beisen/httpd v0.- 9a9506b58e22 weeks ago .2MB
nginx 1.14-alpine cafef9fe265b weeks ago 16MB
redis -alpine 1e985c88d45b weeks ago .5MB
busybox latest d8233ab899d4 weeks ago .2MB
[root@node2 ~]# ifconfig //要使用node2上对外通信的IP地址,非docker hub就必须给出docker registry的服务器地址、端口。
[root@node1 ~]# docker tag tinyhttpd:v0.1-10 node2:5000/tinyhttpd:v0.1-10 //在node1上打标,加红加粗部分(tinyhttpd表示顶层仓库)表示顶层仓库
[root@node1 ~]# docker image ls
node2:5000/tinyhttpd v0.1-10 c0c7f3d670e2 28 hours ago 8.28MB //查看打包的镜像
[root@node1 ~]# docker push node2:5000/tinyhttpd:v0.1-10 //往node2中推送镜像,这里由于只有一个镜像,标签(v0.1-10)可要可不要,如果不给标签,则推送整个仓库。
The push refers to repository [node2:5000/tinyhttpd]
Get https://node2:5000/v2/: http: server gave HTTP response to HTTPS client //这里报错,因为docker默认是https协议,此处客户端是http协议,而服务器端是https协议。
由于本次演示是在内网,所以可以不使用https协议,要使用http协议必须进行配置,把它标记为非加密非安全的docker registry。
官方手册(完整的可用参数列表):
https://docs.docker.com/engine/reference/commandline/dockerd/#run-multiple-daemons
"insecure-registries": [], //把此项添加到/etc/docker/daemon.json
[root@node1 ~]# vim /etc/docker/daemon.json //在node1中进行配置
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"insecure-registries": ["node2:5000"], //添加此行
"bip": "10.0.0.1/16"
}
[root@node1 ~]# systemctl restart docker //注意这里更改的是node1,相对于docker registry(node2是服务器端),node1是客户端。
[root@node1 ~]# docker push node2:5000/tinyhttpd:v0.1-10 //此时就可以成功了
The push refers to repository [node2:/tinyhttpd]
199778bdbe15: Pushed //这表示一层,每一层都单独存放
9cf8d73c614a: Pushed
868d862401c1: Pushed
adab5d09ba79: Pushed
v0.-: digest: sha256:3bd3dc5a7295ab9a2affbf7793e1dc1272f515c5aeec3d3417907b15c6d1ad04 size:
[root@node2 ~]# cd /var/lib/registry/docker/registry/v2/repositories/tinyhttpd/_
_layers/ _manifests/ _uploads/
[root@node2 ~]# cd /var/lib/registry/docker/registry/v2/repositories/tinyhttpd/_layers/sha256/
66bf463ec427c266523a37e3c405c5d40d1a20f5f7b40c8f26fa11cc27ed82ac/
697743189b6d255069caf6c455be10c7f8cae8076c6f94d224ae15cd41420e87/
92dba7e5a2cbf2a9550b8783ef02210c6c2a00b45b621ba8b00af7bb9da3bb58/
c0c7f3d670e214de0dfaa3dee5907591308ca123746066e1c1245263277fd815/
e535bb7265a642ef3cc982d8e80bcf2559ff3cef66be8bfcc2758a77fca7d947/
[root@node2 ~]# ls /var/lib/registry/docker/registry/v2/repositories/tinyhttpd/_layers/sha256/66bf463ec427c266523a37e3c405c5d40d1a20f5f7b40c8f26fa11cc27ed82ac
link //此处就是链接到node1中
如果想在node2上下载刚才push的镜像,同时使用http服务,就需要对node2上的配置文件进行更改。
[root@node2 ~]# vim /etc/docker/daemon.json
9、Docker私有registry的更多相关文章
- 为docker私有registry配置nginx反向代理
公司的Docker私有registry已经搭建好了,用官方的registry image很容易就搭建好了.现在就是要用nginx的反向代理把它放出来,以便在外网可以访问. 我的上一篇blog 讲了如何 ...
- Docker 私有registry出现的证书问题
在上一篇 最近搭建的私有registry里,参考的文章指出,在push时可能出现问题: 可能会出现无法push镜像到私有仓库的问题.这是因为我们启动的registry服务不是安全可信赖的.这是我们需要 ...
- docker 私有registry 配置
备注:此处使用linux镜像配置仓库 registry 启动步骤 https://hub.docker.com/_/registry/ docker login docker pull registr ...
- 7.docker私有registry
一.Docker Registry分类 Registry用于保存docker镜像,包括镜像的层次结构和元数据.都是基于https或者http工作的. 用户可自建Registry,也可使用官方的Dock ...
- Docker 学习9 Docker私有registry
一.docker registry分类 二.安装docker-hub提供的registry 1.安装 [root@localhost yum.repos.d]# yum install -y dock ...
- docker 私有registry harbor安装
一,harbor安装: 参考:Installation and Configuration Guide 1,安装docker 2,安装docker compose sudo curl -L " ...
- docker网络 存储卷 Dockerfile 私有registry
1.bridge模式 docker run --name bu1 -it --network bridge --rm busybox # 相当于 docker run --name bu1 -it - ...
- 建立docker私有库(docker registry)(转)
建立docker私有库(docker registry) 博客分类: docker 我的目标还是无互联网安装,部署内部的docker私有库,目前docker镜像的获得还是需要互联网,将下载好的do ...
- Docker私有仓库 Registry中的镜像管理
这里主要介绍Registry v2的版本 查看Registry仓库中现有的镜像: # curl -XGET http://10.0.30.6:5000/v2/_catalog# curl -XGET ...
随机推荐
- L1-039. 古风排版
L1-039. 古风排版 中国的古人写文字,是从右向左竖向排版的.本题就请你编写程序,把一段文字按古风排版. 输入格式: 输入在第一行给出一个正整数N(<100),是每一列的字符数.第二行给出一 ...
- 6、jeecg 笔记之 自定义excel 模板导出(一)
1.前言 jeecg 中已经自带 excel 的导出导出功能,其所使用的是 easypoi,尽管所导出的 excel 能满足大部分需求, 但总是有需要用到自定义 excel 导出模板,下文所用到的皆是 ...
- Synchronize,Lock, ReentrantLock,ReentrantReadWriteLock
下面ReentrantLock是Lock接口的具体实现 如果想在线程等待时(即等待获得锁时)可以被中断,用lockInterruptibly:注意:在线程已经获得锁正在执行时,用Synchronize ...
- Scala中 zip或者zipWithIndex的用法
问题:你要遍历一个有序集合,同时你又想访问一个循环计数器,但最重要的是你真的不需要手动创建这个计数器.解决方案: 使用zipWithIndex或者zip方法来自动地创建一个计数器,假设你有一个有 ...
- 来测试下你的Java编程能力
上篇整理了下后面准备更系统化写的Java编程进阶的思路,如果仅看里面的词,很多同学会觉得都懂,但我真心觉得没有多少人是真懂的,所以简单的想了一些题目,感兴趣的同学们可以来做做看,看看自己的Java编程 ...
- python类与对象-如何为创建大量实例节省内存
如何为创建大量实例节省内存 问题举例 在网络游戏中,定义玩家类Player(id, name, level...), 每个玩家在线将创建一个Player实例,当在线人数很多时,将产生大量实例, 如何降 ...
- ios APNS注册失败 本地push
- (void)addLocalNotice:(NSString *)titlepush { if (@available(iOS 10.0, *)) { UNUserNotificationCent ...
- LeetCode-7-反转数组-c#
目前看到的网上的版本 都是用到数组的反转函数.对于代码实现的细节没给出 反转函数的想法没给出. 特在此补充. Reverse函数是从c#库源码中抠出的主要部分代码.主要是双端步进.交换,当然是o(1) ...
- 控制反转IOC
IOC-Inversion of Control 控制反转,这是spring的核心.对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系. 1:控制反转不是一种技术,而是 ...
- Python3.0科学计算学习之绘图(一)
基本绘图: (1) plot是标准的绘图库,调用函数plot(x,y)就可以创建一个带有绘图的图形窗口(其中y是x的函数).输入的参数为具有相同长度的数组(或列表):或者plot(y)是plot(r ...