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私有仓库相关推荐

  1. Docker搭建Registry私有仓库

    Docker搭建Registry私有仓库 简介 私有仓库安装成功后就可以使用 docker 命令行工具对 registry 做各种操作了.然而不太方便的地方是不能直观的查看 registry 中的资源 ...

  2. docker之搭建gitlab私有仓库服务

    简单三步搭建docker之搭建gitlab私有仓库服务 服务配置:1c2g+2g虚拟内存,服务启动大概需要3.x g内存 内存不足可配置虚拟使用--memory=10M --memory-swap=- ...

  3. 【云原生 | 44】Docker搭建Registry私有仓库之管理访问权限

  4. 【云原生 | 45】Docker搭建Registry私有仓库之配置Registry详解

  5. Docker容器之搭建本地私有仓库

    Docker容器之搭建本地私有仓库 前言 一.首先下载registry镜像 二.在daemon.json文件中添加私有镜像仓库的地址并重启 三.创建registry容器并开放端口 四.给镜像打标签后上 ...

  6. docker 查询或获取私有仓库(registry)中的镜像

    docker 查询或获取私有仓库(registry)中的镜像,使用 docker search 192.168.1.8:5000 命令经测试不好使. 解决: 1.获取仓库类的镜像: [root@sha ...

  7. 【云原生Docker系列第十篇】搭建本地私有仓库(我问青山何时老,青山问我几时闲)

    文章目录 系列文章目录 前言 一.搭建本地私有仓库过程 首先下载registry镜像 在daemon.json文件中添加私有镜像仓库地址 运行registry 为镜像打标签 上传到私有仓库 列出私有仓 ...

  8. 群晖docker使用flexget_在群晖上搭建 Nexus 私有仓库

    最近在做的项目不能把包上传到公有仓库,而私有仓库不仅收费,而且类型单一.想到自己的群晖自带了 Docker,自建一个私有仓库似乎是个极好的选择. 公有仓库代理 特别是 NPM 库这种零碎文件特别多的, ...

  9. Docker容器之harbor私有仓库部署与管理

    Docker容器之harbor私有仓库部署与管理 前言 一.Harbor概述 二.Harbor的特性 三.Harbor的构成 四.Harbor私有仓库搭建 (1)安装docker-compose (2 ...

最新文章

  1. 查看Apache的并发请求数及其TCP连接状态
  2. 第三次学JAVA再学不好就吃翔(part41)--修饰符
  3. SAP Cloud for Customer使用工作流(workflow)实现邮件自动通知功能
  4. 做任务一定要看测试用例
  5. zxing .net 多种条码格式的生成
  6. 动态ip如何做域名解析?
  7. 其他用户登陆到这台计算机,要登录到这台远程计算机,您必需拥有这台计算机上的‘终端服务器用户访问’权限解决方法...
  8. Compound社区发起一项讨论 向5000名早期活跃用户发放总供应量5%的COMP代币
  9. linux+listen错误,linux listen()
  10. PHP相等(==双重等于)和标识(===三次等于)比较运算符有何区别?
  11. jenkins使用流程
  12. Java实验报告2021
  13. STA | 12. 时序签核方法学及实战经验
  14. 基础知识 | 什么是二进制文件?
  15. Netty高性能之道1-传统RPC调用性能差的三宗罪
  16. 设置Xib中NSViewController中的NSView的isFlipped
  17. Unity-URP-基于模板的延迟渲染
  18. (附源码)计算机毕业设计SSM基于的楼盘销售系统的设计与实现
  19. 使用pyecharts遇到的坑(去掉地图标识小红点)!
  20. 理想汽车下“神坛”:抛弃对混动的执念,不得不转身?

热门文章

  1. 引力模型-高维固定效应面板泊松模型
  2. 语音识别之HTK入门(四)——HCompV源码解析
  3. 计算机械结构变形,机械结构温度变化的位移计算.ppt
  4. python dataset_数据管道Dataset
  5. P7961 [NOIP2021] 数列
  6. MATLAB程序:IEEE802.16d路径损耗模型
  7. 2018年android常用的框架介绍
  8. PTA: 6-8 剩余不足 (10分)(c语言)
  9. HCSC: Hierarchical Contrastive Selective Coding
  10. 《OpenDRIVE1.6规格文档》3