栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Dcocker(2)--docker仓库,registry

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Dcocker(2)--docker仓库,registry

目录
    • 一、Dcoker仓库
        • 1.什么是仓库
        • 2. docker hub
    • 二、Registry仓库原理及搭建
        • 1.Registry工作原理
        • 2.配置镜像加速器
        • 3.搭建私有仓库

一、Dcoker仓库 1.什么是仓库
  • Docker 仓库是用来包含镜像的位置,Docker提供一个注册服务器(Register)来保存多个仓库,每个仓库又可以包含多个具备不同tag的镜像。
  • Docker运行中使用的默认仓库是 Docker Hub 公共仓库。

2. docker hub

docker hub是docker公司维护的公共仓库,用户可以免费使用,也可以购买私有仓库。

docker hub虽然方便,但是还是有限制

  • 需要internet连接,速度慢
  • 所有人都可以访问
  • 由于安全原因企业不允许将镜像放到外网

好消息是docker公司已经将registry开源,我们可以快速构建企业私有仓库

二、Registry仓库原理及搭建 1.Registry工作原理
  • Docker Registry有三个角色,分别是index、registry和registry client。
  • index
    • 负责并维护有关用户帐户、镜像的校验以及公共命名空间的信息。
      • Web UI
      • 元数据存储
      • 认证服务
      • 符号化
  • registry
    • 是镜像和图表的仓库,它不具有本地数据库以及不提供用户认证,通过- Index Auth service的Token的方式进行认证。
  • Registry Client
    • Docker充当registry客户端来维护推送和拉取,以及客户端的授权。

情景A:用户要获取并下载镜像。

情景B:用户要推送镜像到registry中。情景C:用户要从index或registry中删除镜像。

2.配置镜像加速器
  • 从docker hub上下载镜像的速度太慢,需要配置镜像加速器,这里以阿里云为例:(需要提前注册阿里云帐号)

  • 配置docker daemon文件:

      vim /etc/docker/daemon.json
      ///
      {
       "registry-mirrors": ["https://vo5twm71.mirror.aliyuncs.com"]
       }
      ///
      systemctl daemon-reload
      systemctl restart docker
    
3.搭建私有仓库
docker pull registry  #下载镜像
docker history registry
docker run -d -p 5000:5000 registry:2    #运行registry容器
docker tag webserver:v1 localhost:5000/webserver:latest   #给私有仓库添加标签
docker push localhost:5000/webserver   #上传镜像到本地仓库

docker iamges


docker images
docker rmi localhost:5000/webserver:latest
docker pull localhost:5000/webserver:latest

为Docker仓库添加证书加密功能

mkdir -p certs
docker ps
lftp 172.25.254.250
> cd pub/docs/docker/openssl11/
> get openssl11-1.1.1g-3.el7.x86_64.rpm openssl11-libs-1.1.1g-3.el7.x86_64.rpm
> exit
yum install openssl11-1.1.1g-3.el7.x86_64.rpm openssl11-libs-1.1.1g-3.el7.x86_64.rpm

生成证书,重建registry容器:

openssl11 req -newkey rsa:4096 -nodes -sha256 -keyout certs/westos.org.key -addext "subjectAltName = DNS:reg.westos.org" -x509 -days 365 -out certs/westos.org.crt

docker run -d 
 --restart=always 
  --name registry 
  -v /root/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 
 -p 443:443 
 registry

cd certs/
mkdir -p /etc/docker/certs.d/reg.westos.org/
cp westos.org.crt /etc/docker/certs.d/reg.westos.org/ca.crt    ##拷贝证书到docker主机
docker tag nginx:latest reg.westos.org/nginx:latest
docker push reg.westos.org/nginx:latest                 #测试上传镜像




为Docker仓库添加用户认证功能

yum install httpd-tools -y    #下载认证工具
mkdir auth
 htpasswd -Bc auth/htpasswd admin		#生成用户密码文件
cd auth/
cat htpasswd
//admin:$2y$05$/Kx8NTcidQK5WOBQsRI76ewFMeBYKj81A4gZmvgFJQKkqtPQqI8oa
docker ps

docker rm -f registry 

 docker run -d   -p 443:443   --restart=always --name registry   -v "$(pwd)"/auth:/auth   -e "REGISTRY_AUTH=htpasswd"   -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm"   -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd   -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   registry

docker ps

docker push reg.westos.org/nginx:latest
docker login reg.westos.org
cat /root/.docker/config.json       #查看登陆状态

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/310854.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号