Docker Registry服务器部署配置

使用registry部署私有镜像仓库 1、 registry部署私有仓库 1) 创建容器数据卷存储企业自己的镜像 [root@centos01 ~]# docker run -d -p 5000:5000 --name registry -v /opt/registry:/var/lib/registry registry 2) 配置docker服务器支持registry私有仓库 [root@centos01 ~]# vim /etc/docker/daemon.json {"registry-mirrors":["https://6kx4zy 阅读详情

Docker Registry服务器部署非常简单,只需要合并运行镜像即可,由于Docker Registry服务器整合很多服务,配置的参数非常多,包括:存储,Redis,Auth,日志,中间件,监控,HTTP,通知,健康检查,代理,兼容性

部署Registry服务器

docker run -d -p 5000:5000 --restart=always --name registry \  
  -v `pwd`/data:/var/lib/registry \
  registry:2

部署服务器非常简单,只需要一条命令,映射5000端口到容器,restart机制为总是,并分配当前目录下的data目录作为容器卷,存储镜像数据,你可以配置HTTPS方式的访问,如果需要配置TSL请参考Docker官方文档,如果是在局域网内访问这个方式即可满足需求

测试Registry服务

在测试之前必须要理解镜像的命名,理解下面的两条命令

docker pull ubuntu  

这个命令是从Docker官方的hub拉取ubuntu镜像,这是简写的方式,完整的命令是这样的docker pull docker.io/library/ubuntu

docker pull localhost:5000/foo/bar  

这个命令是从localhost:5000拉取foo/bar镜像,接下来尝试从Docker Hub拉取镜像并推送到本地的Registry服务器,以Ubuntu为例

从Docker Hub拉取Ubuntu镜像并命名为localhost:5000/ubuntu

docker pull ubuntu && docker tag ubuntu localhost:5000/ubuntu  

推送镜像到本地的Registry服务器

docker push localhost:5000/ubuntu  

删除宿主机的localhost:5000/ubuntu并拉取Registry服务器的ubuntu镜像

docker rmi -f localhost:5000/ubuntu  
docker pull localhost:5000/ubuntu  

配置Registry服务器

配置Registry服务器的方式有两种,一种是在运行容器指定环境变量重写配置文件,另一种是直接映射yaml配置文件,建议使用配置文件的方式,这样迁移方便

环境变量重写配置选项

比如重写配置文件存储选项,文件配置如下所示

storage:  
  filesystem:
    rootdirectory: /var/lib/registry

那么运行Registery容器时就需要指定环境变量REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/somewhere

docker run -d -p 5000:5000 --restart=always --name registry \  
  -v `pwd`/data:/var/lib/registry \
  -e  REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/somewhere \
  registry:2
覆盖配置文件

可以使用挂载卷的方式覆盖配置,个人建议使用这种方式配置

docker run -d -p 5000:5000 --restart=always --name registry \  
             -v `pwd`/config.yml:/etc/docker/registry/config.yml \
             registry:2

挂载当前目录下config.yml覆盖容器的/etc/docker/registry/config.yml文件,下面是整个配置文件,参数非常之多,解释一些常用的

version: 0.1  
log: ## 日志选项  
  level: debug
  formatter: text
  fields:
    service: registry
    environment: staging
  hooks:
    - type: mail
      disabled: true
      levels:
        - panic
      options:
        smtp:## 邮件通知配置
          addr: mail.example.com:25
          username: mailuser
          password: password
          insecure: true
        from: sender@example.com
        to:
          - errors@example.com
loglevel: debug # 即将弃用: 使用Log替代  
storage:##存储选项,  
  filesystem: ## 本地文件系统,也可以是云分布式存储,比如微软Azure,亚马逊S3,swift,OSS
    rootdirectory: /var/lib/registry
    maxthreads: 100 ##最大线程数
auth: #用户验证  
  silly:
    realm: silly-realm
    service: silly-service
  token:
    realm: token-realm
    service: token-service
    issuer: registry-token-issuer
    rootcertbundle: /root/certs/bundle
  htpasswd:
    realm: basic-realm
    path: /path/to/htpasswd
middleware:##中间件类型有registry,repository,storage三种,每种中间件可以像下面的方式使用  
  registry:
    - name: ARegistryMiddleware
      options:
        foo: bar
  storage:
    - name: ARegistryMiddleware
reporting:##监控,可以使用一些在线的监控工具包括bugsnag,newrelic  
  newrelic:
    licensekey: newreliclicensekey
    name: newrelicname
    verbose: true
http:## 由Nginx提供的HTTP服务,可以把它理解成配置Nginx  
  addr: localhost:5000
  prefix: /my/nested/registry/
  host: https://myregistryaddress.org:5000
  secret: asecretforlocaldevelopment
  relativeurls: false
  tls:
    certificate: /path/to/x509/public
    key: /path/to/x509/private
    clientcas:
      - /path/to/ca.pem
      - /path/to/another/ca.pem
    letsencrypt:
      cachefile: /path/to/cache-file
      email: emailused@letsencrypt.com
  debug:
    addr: localhost:5001
  headers:
    X-Content-Type-Options: [nosniff]
notifications:## 事件通知,当Registry服务器发生拉取,推送等时发送事件到endpoints  
  endpoints:
    - name: alistener
      disabled: false
      url: https://my.listener.com/event
      headers: <http.Header>
      timeout: 500
      threshold: 5
      backoff: 1000
redis:##这个用过的都懂  
  addr: localhost:6379
  password: asecret
  db: 0
  dialtimeout: 10ms
  readtimeout: 10ms
  writetimeout: 10ms
  pool:
    maxidle: 16
    maxactive: 64
    idletimeout: 300s
health:## 健康检查包括存储驱动,file,http服务,tcp的可用性检查  
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3
  file:
    - file: /path/to/checked/file
      interval: 10s
  http:
    - uri: http://server.to.check/must/return/200
      headers:
        Authorization: [Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==]
      statuscode: 200
      timeout: 3s
      interval: 10s
      threshold: 3
  tcp:
    - addr: redis-server.domain.com:6379
      timeout: 3s
      interval: 10s
      threshold: 3
proxy:## 可以镜像Docker Hub的仓库  
  remoteurl: https://registry-1.docker.io
  username: [username]
  password: [password]
compatibility:  
  schema1:
    signingkeyfile: /etc/registry/key.json
【Docker仓库】Docker Registry Browser镜像仓库配置访问验证 阅读详情

相关推荐

镜像仓库Registry——docker

镜像是推送上去了,但在147上无法查看推送上来的镜像信息,还得求助于开源社区,在dockerhub你可以找到一款docker-registry-ui的registry的可视化UI的。卧槽,报错了,从错误信息中可以看到,https的client不接受http的response,没办法,你得要让client端接收不安全的http应该就可以了,这个问题在官方文。终于可以在ui上看到client推送过来的镜像了,是不是很开心,由于是内网,就算你的image有个1,2g的又何妨呢,本篇就先说到这里,希望对你有帮助。

shengyin714959的博客 318

Docker学习笔记05-----镜像仓库之官方Docker Hub

官方Docker Hub https://hub.docker.com/ 1、创建Repository 2、构建容器镜像 2.1、创建Dockerfile FROM java:8 MAINTAINER itmrl LABEL name="helloworld" version="1.0.0" author="itmrl" COPY helloworld.jar helloworld.jar EXPOSE 8080 CMD ["java","-jar","-Dfile.encoding=UTF-8","-X

MR.L'S BLOG 664

PCIe信号眼图总是不开?手把手教你调CTLE和DFE参数(附实测波形对比)

本文详细解析了PCIe信号眼图调试中CTLE和DFE参数的优化方法,帮助硬件工程师解决眼图无法张开的问题。通过实际案例和步骤指导,介绍了如何调整CTLE直流增益和DFE抽头系数,提升接收端均衡器性能,确保信号完整性。

weixin_26805597的博客 221

registry拉取dockerhub私有镜像

registry除了用作私有仓库,还可以用作镜像缓存,镜像缓存就算做镜像加速,可用于加速dockerhub镜像,也能拉取dockerhub私有镜像

学习学习再学习 2983

VS2022下C# WPF项目一键打包成独立exe的完整指南

本文提供了一份在Visual Studio 2022中将C# WPF项目一键打包成独立可执行exe文件的完整指南。通过配置项目属性、启用单文件发布和自包含模式,开发者无需依赖第三方工具,即可生成可在未安装.NET运行时的电脑上直接运行的独立程序,极大简化了桌面应用的分发流程。

weixin_28831399的博客 674

Prism 入门02,区域介绍

什么是区域(Region)?区域,在Prism 框架中,区域是模块化的核心的功能之一,其主要作用是降低应用程序和模块之间的耦合度。使用方式:在应用程序的界面中,划分出某块区域,并为这个区域定义一个唯一的区域名称。那么通过这个区域名称,应用程序就可以找到指定的区域。并为这个区域动态放置一些容器或控件,从而呈现在界面中。

build2024 1127

docker 配置国内镜像地址

https://www.cnblogs.com/cocoajin/p/15513348.html为docker配置国内镜像地址,用于在pull镜像下载加速1. 创建配置文件daemon.json在目录/etc/docker/daemon.json下,如果没,则创建该文件2. 按如下格式化添加镜像地址 docker中国镜像地址: "https://registry.docker-cn.com", 网络docker镜像地址 "http://hub-mirror.c.

yygr的博客 1万+

化工设备设计软件:PVELITE二次开发_(12).数据导入导出与兼容性

在数据导入之前,需要定义数据在PVELITE中的结构。可以通过编程接口定义字段名称和数据类型。# 导入必要的库 import pvelite # 创建PVELITE实例 pve = pvelite . PVELITE() # 定义CSV数据结构 csv_structure = {

kkchenjj的博客 1216

Docker镜像仓库访问失败问题记录

目录镜像仓库访问失败解决方案如下:1.修改替换国内源2.强制指定docker hub访问地址修改主机host验证配置 Q1:Error response from daemon: Get https://index.docker.io/v1/search?q=sameersbn&n=25: net/http: TLS handshake timeout Q2: docker: Get https://registry-1.docker.io/v2/: net/http: request cancel

vc33569的专栏 4712

【100%通过率】华为机试真题 Python 实现【对称美学】【2022.11 Q4 新题】

对称就是最大的美学,现有一道关于对称字符串的美学。 已知: 第1个字符串:R 第2个字符串:BR 第3个字符串:RBBR 第4个字符串:BRRBRBBR 第5个字符串:RBBRBRRBBRRBRBBR相信你已经发现规律了,没错! 就是第i个字符串=第i-1号字符串的取反+第i-1号字符串。取反即(R->B,B->R); 现在告诉你n和k,让你求得第n个字符串的第k个字符是多少。(k的编号从0开始)

MISAYAONE的博客 1万+

【unity】【WebRTC】从0开始创建一个Unity远程媒体流app-构建可同步场景

本文介绍了如何利用Unity和WebRTC技术实现远程画面传输。通过配置Render Streaming组件、设置信令管理器和视频流发送器,构建了一个可同步的Unity场景。文中详细说明了从场景搭建到浏览器端测试的完整流程,并提供了常见问题排查方法。该方案适用于远程调试、云游戏、VR共享等场景,具有低延迟、高兼容性等特点。文章还包含项目源码下载链接,方便读者实践操作。最终实现了Unity端到浏览器端的实时画面传输,为后续实现双向互动奠定了基础。

每日出拳老爷子的博客 1843

docker系列-搭建本地私有仓库-registry容器的各种坑

总结的坑:a.关注daemon.json的书写格式。一句话可以错好几个点。b.tag要清楚的表示registry服务器的信息,才能push上传成功。不是可有可无的信息。c.tag中有版本号要清楚的写上。系统自动补全的是用latest。 #################################################################### 搭建过程:前提:通过doc...

bianshun6124的博客 818

npm报错 npm WARN deprecated....的问题解决方式

报错 :npm WARN deprecated … 现象:无法进行有效的vue项目的部署以及npm install 命令的执行。 原因一:版本问题 说明:由于npm的版本过低或者过高导致的报错 检查版本: npm -v 如果版本是比较旧的,或者是最新的,这里可以进行对npm的更新和回退。 更新npm版本: npm updated -d 查看可以更新的版本 npm install -g npm 默认安装最新版本 安装回退指定的版本: npm updated -d 查看所有的版本 npm -g i.

任聪聪的博客 16万+

Docker Registry

一个registry是一个存储和内容交付系统,其中维护着若干命名的Docker镜像,这些镜像有不同的标记版本。(例如:有一个镜像名字叫 hello/world,它有两个tags分别是2.0和2.1)用户通过使用 docker push 和 docker pull 命令与 registry 进行交互。(例如:docker pull registry-1.docker.io/hello/world:2.1)前面说了,registry是一个存储系统,它存储的是Docker镜像。那么,镜像到底存到哪里呢?

qq_36733838的博客 5445

Android 13 Settings蓝牙列表卡顿问题排查及优化过程

此时我们的卡顿优化基本完成了,我们应该要考虑内存是否会泄漏,如果大家不知道哪些需要回收可以用leakcanary和android profiler进行内存检测,看代码有没有内存泄漏。

龚礼鹏的博客 2548

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Docker Registry 2终极认证方案:docker_auth一站式搭建指南

docker_auth是Docker Registry 2的认证服务器,为私有Docker仓库提供安全可靠的身份验证和授权解决方案。它支持多种认证后端,包括静态用户、LDAP、MongoDB、GitHub、GitLab等,同时提供灵活的访问控制策略,是保护Docker镜像仓库安全的理想选择。 ## 🚀 快速了解docker_auth核心优势 docker_auth作为Docker Regis

gitblog_01067的博客 913

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

docker 部署带有界面的registry仓库

1. 创建registry仓库 $ docker run -d --restart=always --name registry -p 5000:5000 -v /storage/registry:/var/lib/registry registry:2.3.0 $ docker ps 2. 将镜像推入仓库 $ docker pull centos $ docker tag centos:latest 192.168.211.15:5000/centos:latest $ docker push 192

爱死亡机器人 3847

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

如何快速部署MCP Registry:开源注册中心的完整配置指南

MCP Registry是一个社区驱动的Model Context Protocol(MCP)服务器注册中心,它为AI助手和开发者提供了统一的服务器发现和发布平台。作为MCP生态系统的核心组件,这个开源注册中心让你能够轻松管理、发布和发现各种MCP服务器,就像应用商店一样方便。 ## 🚀 项目概述:为什么选择MCP Registry? MCP Registry不仅仅是一个简单的服务器列表,它

gitblog_00664的博客 962

华为云云耀云服务器L实例评测|docker私有仓库部署手册

【软件安装版本】【集群安装(否)】版本号文档编写文档审核创建日期修改日期1.0jzgjzg2023.9.13。

极客栈 1306

docker 拉取镜像报ERROR [internal] load metadata for docker.io/library/centos:8

修复docker 拉取镜像报ERROR [internal] load metadata for docker.io/library/centos:8问题

ironurbane的专栏 2122

6-搭建一个私有registry

6-搭建一个私有registry docker hub 查找 registry docker hub registry 可以看到部署很简单,只有一条命令。 docker run -d -p 5000:5000 --restart always --name registry registry:2 部署私有registry 找一台linux的服务器并安装好docker 在此服务器上部署r...

FlyWine的博客 619

使用docker-maven-plugin插件部署springcloud项目到registry

一、在要部署的微服务pom.xml中添加docker-maven-plugin插件 <properties> <dockerfile.maven.version>1.3.7</dockerfile.maven.version> <!--docker私服地址--> <docker.registry.repository>141.1...

qq_39768738的博客 965

Registry的安装和使用

安装Registry镜像管理仓库和安装GitLab和Nexus类似 1.按照以下的路径创建相应的文件夹 /usr/local/docker/registry 2.在registry文件夹下面创建docker-compose.yml配置文件,在配置文件中添加以下的配置 version: '3.1' services: registry: image: registry rest...

William_TWG的博客 2840

使用服务器自建docker镜像源

有些时候我们需要在服务器运行docker镜像,可以选择在服务器上配置科学上网,也可以选择自己搭建镜像源。如果自己开发的镜像体积较大且频繁更新,使用自建镜像源可以提高速度,以及节省科学上网的费用。搭建镜像源使用docker和podman都可以做到,本文以podman为例。需要先在服务器安装podman,并在供应商处以及firewalld打开想要搭建镜像源的端口,使其允许外部访问。

qq_33794853的博客 404
上一篇: 关于Docker Registry v2的搭建
下一篇: Pull an Image from a Private Registry
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值