docker仓库——搭建registry私有仓库
docker仓库
- 一、什么是仓库
- 二、docker hub
- 三、registry工作原理
- 四、配置镜像加速器
- 五、搭建私有仓库
- 1、导入registry镜像
- 2、添加证书和密钥
- 3、将证书给docker
- 3、添加用户认证功能
- 4、建立registry容器
- 5、docker主机认证
- 6、上传镜像到仓库
- 7、其他主机测试使用
- 六、docker 仓库子命令
一、什么是仓库
1、docker 仓库是用来包含镜像的位置,docker提供一个注册服务器(register)来保存多个仓库,每个仓库又可以包含多个具备不同tag的镜像。
2、docker运行中使用的默认仓库是 docker hub 公共仓库。
二、docker hub
- docker hub是docker公司维护的公共仓库,用户可以免费使用,也可以购买私有仓库。
- docker hub的使用:
1、 首先在https://hub.docker.com/
网站注册一个账号
2、在docker hub上新建一个公共仓库
3、创建之后可以看到公共仓库,接下来要从docker主机上传镜像,首先需要登录
[root@server1 ~]# docker login
Username: username
Password: passwd
4、docker hub为了区分不同用户的同名镜像,要求镜像的格式是:[username]/xxx.tag
docker tag busybox:latest username/busybox:latest
5、上传镜像到docker hub
docker push username/busybox:latest
6、从docker hub拉取镜像
docker pull username/busybox:latest
7、删除本地镜像,再从docker hub中删除镜像
docker rmi username/busybox:latest
8、docker hub的缺点
- 需要internet连接,速度慢
- 所有人都可以访问
- 由于安全原因企业不允许将镜像放到外网
三、registry工作原理
1、一次docker pull 或 push背后发生的事情
index服务主要提供镜像索引以及用户认证的功能。当下载一个镜像的时候,首先会去index服务上做认证,然后查找镜像所在的registry的地址并放回给docker客户端,docker客户端再从registry下载镜像,在下载过程中 registry会去index校验客户端token的合法性,不同镜像可以保存在不同的registry服务上,其索引信息都放在index服务上
2、docker registry有三个角色,分别是index、registry和registry client
- index:负责并维护有关用户帐户、镜像的校验以及公共命名空间的信息。
- registry:是镜像和图表的仓库,它不具有本地数据库以及不提供用户认证,通过Index Auth service的Token的方式进行认证。
- registry client:docker充当registry客户端来维护推送和拉取,以及客户端的授权。
四、配置镜像加速器
- 从docker hub上传下载镜像的速度太慢,需要配置镜像加速器,这里以阿里云为例:(需要提前注册阿里云帐号
vim /etc/docker/daemon.json{"registry-mirrors": ["此处添加从阿里云上获取的mirrors"]
}systemctl daemon-reload
systemctl restart docker
五、搭建私有仓库
1、导入registry镜像
docker load -i registry2.tar
2、添加证书和密钥
cd ~
mkdir -p certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/westos.org.key -x509 -days 365 -out certs/westos.org.crt
ls certs/
westos.org.crt westos.org.key
3、将证书给docker
cd /etc/docker/
mkdir -p certs.d/reg.westos.org/
cd certs.d/reg.westos.org/
cp ~/certs/westos.org.crt ca.crt
3、添加用户认证功能
-B
:创建用户,-c
:首次创建,再次添加时会覆盖前面第一次
mkdir -p auth
yum install -y httpd-tools ##安装认证工具
cd ~
htpasswd -Bc auth/htpasswd admin
htpasswd -B auth/htpasswd skk
4、建立registry容器
-d
:后台运行-v /opt/registry:/var/lib/registry
:指定挂载路径-p 443:443
:端口映射-v "$(pwd)"/certs:/certs -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt -e REGISTRY_HTTP_TLS_KEY=/certs/westos.org.key
:指定证书和密钥-v "$(pwd)"/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd
:指定用户认证
cd ~
docker run -d --name registry -v /opt/registry:/var/lib/registry -p 443:443 -v "$(pwd)"/certs:/certs -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt -e REGISTRY_HTTP_TLS_KEY=/certs/westos.org.key -v "$(pwd)"/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd registry:2
容器建立后可以用docker ps
查看容器进程是否开启,docker logs registry
查看日志是否异常
查看端口:netstat -antlp
5、docker主机认证
做主机认证前,先进行地址解析
vim /etc/hosts172.25.36.1 server1 reg.westos.org
经过主机认证登陆后,才可以上传和下载镜像
cd ~
docker login reg.westos.org
在/root/.docker/config.json
中可以查看认证
6、上传镜像到仓库
- 上传前需要对镜像打标签
docker tag nginx:latest reg.westos.org/nginx:latest
docker push reg.westos.org/nginx:latest
7、其他主机测试使用
- server2主机:编写解析和获得证书
vim /etc/hosts172.25.36.1 server1 reg.westos.orgscp -r /etc/docker/certs.d/ server2:/etc/docker/
server2登录后即可拉取镜像
docker login reg.westos.org
docker pull reg.westos.org/nginx
六、docker 仓库子命令
docker search | 查询镜像 |
docker pull | 拉取镜像 |
docker push | 上传镜像 |
docker login | 登录仓库 |
docker logout | 登出仓库 |
docker仓库——搭建registry私有仓库相关推荐
- Docker搭建Registry私有仓库
Docker搭建Registry私有仓库 简介 私有仓库安装成功后就可以使用 docker 命令行工具对 registry 做各种操作了.然而不太方便的地方是不能直观的查看 registry 中的资源 ...
- docker之搭建gitlab私有仓库服务
简单三步搭建docker之搭建gitlab私有仓库服务 服务配置:1c2g+2g虚拟内存,服务启动大概需要3.x g内存 内存不足可配置虚拟使用--memory=10M --memory-swap=- ...
- 【云原生 | 44】Docker搭建Registry私有仓库之管理访问权限
- 【云原生 | 45】Docker搭建Registry私有仓库之配置Registry详解
- Docker容器之搭建本地私有仓库
Docker容器之搭建本地私有仓库 前言 一.首先下载registry镜像 二.在daemon.json文件中添加私有镜像仓库的地址并重启 三.创建registry容器并开放端口 四.给镜像打标签后上 ...
- docker 查询或获取私有仓库(registry)中的镜像
docker 查询或获取私有仓库(registry)中的镜像,使用 docker search 192.168.1.8:5000 命令经测试不好使. 解决: 1.获取仓库类的镜像: [root@sha ...
- 【云原生Docker系列第十篇】搭建本地私有仓库(我问青山何时老,青山问我几时闲)
文章目录 系列文章目录 前言 一.搭建本地私有仓库过程 首先下载registry镜像 在daemon.json文件中添加私有镜像仓库地址 运行registry 为镜像打标签 上传到私有仓库 列出私有仓 ...
- 群晖docker使用flexget_在群晖上搭建 Nexus 私有仓库
最近在做的项目不能把包上传到公有仓库,而私有仓库不仅收费,而且类型单一.想到自己的群晖自带了 Docker,自建一个私有仓库似乎是个极好的选择. 公有仓库代理 特别是 NPM 库这种零碎文件特别多的, ...
- Docker容器之harbor私有仓库部署与管理
Docker容器之harbor私有仓库部署与管理 前言 一.Harbor概述 二.Harbor的特性 三.Harbor的构成 四.Harbor私有仓库搭建 (1)安装docker-compose (2 ...
最新文章
- 查看Apache的并发请求数及其TCP连接状态
- 第三次学JAVA再学不好就吃翔(part41)--修饰符
- SAP Cloud for Customer使用工作流(workflow)实现邮件自动通知功能
- 做任务一定要看测试用例
- zxing .net 多种条码格式的生成
- 动态ip如何做域名解析?
- 其他用户登陆到这台计算机,要登录到这台远程计算机,您必需拥有这台计算机上的‘终端服务器用户访问’权限解决方法...
- Compound社区发起一项讨论 向5000名早期活跃用户发放总供应量5%的COMP代币
- linux+listen错误,linux listen()
- PHP相等(==双重等于)和标识(===三次等于)比较运算符有何区别?
- jenkins使用流程
- Java实验报告2021
- STA | 12. 时序签核方法学及实战经验
- 基础知识 | 什么是二进制文件?
- Netty高性能之道1-传统RPC调用性能差的三宗罪
- 设置Xib中NSViewController中的NSView的isFlipped
- Unity-URP-基于模板的延迟渲染
- (附源码)计算机毕业设计SSM基于的楼盘销售系统的设计与实现
- 使用pyecharts遇到的坑(去掉地图标识小红点)!
- 理想汽车下“神坛”:抛弃对混动的执念,不得不转身?
热门文章
- 引力模型-高维固定效应面板泊松模型
- 语音识别之HTK入门(四)——HCompV源码解析
- 计算机械结构变形,机械结构温度变化的位移计算.ppt
- python dataset_数据管道Dataset
- P7961 [NOIP2021] 数列
- MATLAB程序:IEEE802.16d路径损耗模型
- 2018年android常用的框架介绍
- PTA: 6-8 剩余不足 (10分)(c语言)
- HCSC: Hierarchical Contrastive Selective Coding
- 《OpenDRIVE1.6规格文档》3