使用Docker registry镜像创建私有仓库的方法

发布时间 - 2026-01-11 00:46:43    点击率:

安装Docker后,可以通过官方提供的registry镜像来简单搭建一套本地私有仓库环境,本文记录简单的搭建过程。

1 使用registry启动私有仓库的容器

docker run -d -p 5000:5000 -v /root/my_registry:/tmp/registry registry

说明:若之前没有安装registry容器则会自动下载并启动一个registry容器,创建本地的私有仓库服务。默认情况下,会将仓库创建在容器的/tmp/registry目录下,可以通过 -v 参数来将镜像文件存放在本地的指定路径上(例如,放在本地目录/root/my_registry下)。

2 向私有仓库push镜像

docker push 104.131.173.242:5000/ubuntu_sshd_gcc_gerry:14.04

说明:根据第一步启动的registry容器所在宿主主机的IP和Port,push某环境的本地容器。

root@gerryyang:~# docker push 104.131.173.242:5000/ubuntu_sshd_gcc_gerry:14.04 
The push refers to a repository [104.131.173.242:5000/ubuntu_sshd_gcc_gerry] (len: 1) 
Sending image list 
Pushing repository 104.131.173.242:5000/ubuntu_sshd_gcc_gerry (1 tags) 
511136ea3c5a: Image successfully pushed 
3b363fd9d7da: Image successfully pushed 
607c5d1cca71: Image successfully pushed 
f62feddc05dc: Image successfully pushed 
8eaa4ff06b53: Image successfully pushed 
894c0161121f: Image successfully pushed 
a45787b0222f: Image successfully pushed 
f0e3262ed661: Image successfully pushed 
Pushing tag for rev [f0e3262ed661] on {http://104.131.173.242:5000/v1/repositories/ubuntu_sshd_gcc_gerry/tags/14.04} 

宿主主机my_registry的目录结构

 root@gerryyang:~/my_registry# tree 
. 
├── images 
│  ├── 3b363fd9d7dab4db9591058a3f43e806f6fa6f7e2744b63b2df4b84eadb0685a 
│  │  ├── ancestry 
│  │  ├── _checksum 
│  │  ├── json 
│  │  └── layer 
│  ├── 511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158 
│  │  ├── ancestry 
│  │  ├── _checksum 
│  │  ├── json 
│  │  └── layer 
│  ├── 607c5d1cca71dd3b6c04327c3903363079b72ab3e5e4289d74fb00a9ac7ec2aa 
│  │  ├── ancestry 
│  │  ├── _checksum 
│  │  ├── json 
│  │  └── layer 
│  ├── 894c0161121f105ac9b81bca7ac583ac1f29772625911db0fa2b6b475f5642fd 
│  │  ├── ancestry 
│  │  ├── _checksum 
│  │  ├── json 
│  │  └── layer 
│  ├── 8eaa4ff06b53ff7730c4d7a7e21b4426a4b46dee064ca2d5d90d757dc7ea040a 
│  │  ├── ancestry 
│  │  ├── _checksum 
│  │  ├── json 
│  │  └── layer 
│  ├── a45787b0222f955d68d9db34fb18033144b8a78015d9e306a1613894da0fd86e 
│  │  ├── ancestry 
│  │  ├── _checksum 
│  │  ├── json 
│  │  └── layer 
│  ├── f0e3262ed6617896b306852c923e4c0e1d359b58b29a02ef849c4b8978c73c65 
│  │  ├── ancestry 
│  │  ├── _checksum 
│  │  ├── json 
│  │  └── layer 
│  └── f62feddc05dc67da9b725361f97d7ae72a32e355ce1585f9a60d090289120f73 
│    ├── ancestry 
│    ├── _checksum 
│    ├── json 
│    └── layer 
└── repositories 
  └── library 
    └── ubuntu_sshd_gcc_gerry 
      ├── _index_images 
      ├── tag_14.04 
      └── tag14.04_json 
 
12 directories, 35 files 

关于https的问题

root@gerryyang:~# docker push 104.131.173.242:5000/ubuntu_sshd_gcc_gerry:14.04 
FATA[0002] Error: Invalid registry endpoint https://104.131.173.242:5000/v1/: Get https://104.131.173.242:5000/v1/_ping: EOF. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry 104.131.173.242:5000` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/104.131.173.242:5000/ca.crt  

解决方法:

修改Docker配置文件

vim /etc/default/docker

增加以下一行

DOCKER_OPTS="$DOCKER_OPTS --insecure-registry=104.131.173.242:5000"

重启Docker

sudo service docker restart

3 私有仓库查询方法

curl http://104.131.173.242:5000/v1/search

说明:使用curl查看仓库104.131.173.242:5000中的镜像。在结果中可以查看到ubuntu_sshd_gcc_gerry,说明已经上传成功了。

gerryyang@mba:personal_repository$curl http://104.131.173.242:5000/v1/search 
{"num_results": 0, "query": "", "results": []} 
gerryyang@mba:personal_repository$curl http://104.131.173.242:5000/v1/search 
{"num_results": 1, "query": "", "results": [{"description": "", "name": "library/ubuntu_sshd_gcc_gerry"}]} 

4 在其他的机器上访问和下载私有仓库的镜像

docker pull 104.131.173.242:5000/ubuntu_sshd_gcc_gerry:14.04
root@gerryyang:~# docker pull 104.131.173.242:5000/ubuntu_sshd_gcc_gerry:14.04 
Pulling repository 104.131.173.242:5000/ubuntu_sshd_gcc_gerry 
f0e3262ed661: Download complete  
511136ea3c5a: Download complete  
3b363fd9d7da: Download complete  
607c5d1cca71: Download complete  
f62feddc05dc: Download complete  
8eaa4ff06b53: Download complete  
894c0161121f: Download complete  
a45787b0222f: Download complete  
Status: Image is up to date for 104.131.173.242:5000/ubuntu_sshd_gcc_gerry:14.04 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# docker  # registry  # 镜像  # 私有镜像仓库  # 创建私有仓库  # docker registry 私有仓库的搭建过程  # Docker私有仓库Registry部署的实现  # Docker Registry搭建私有镜像仓库的实现方法  # Docker 搭建私有仓库(registry、harbor)  # 详解Docker私有仓库Registry的搭建验证  # 详解Docker Registry之删除镜像、垃圾回收  # Docker registry私有镜像仓库服务部署案例演示  # 放在  # 可以通过  # 其他的  # 重启  # 会将  # 解决方法  # 则会  # 配置文件  # 大家多多  # 可以查看  # 没有安装  # 镜像文件  # 情况下  # 上传  # 目录下  # 机器上  # f62feddc05dc  # c0161121f  # ea3c5a 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  Android 常见的图片加载框架详细介绍  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  javascript中闭包概念与用法深入理解  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  Laravel如何实现API资源集合?(Resource Collection教程)  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  如何用搬瓦工VPS快速搭建个人网站?  Laravel如何实现用户注册和登录?(Auth脚手架指南)  高防服务器租用首荐平台,企业级优惠套餐快速部署  活动邀请函制作网站有哪些,活动邀请函文案?  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  微信推文制作网站有哪些,怎么做微信推文,急?  Python图片处理进阶教程_Pillow滤镜与图像增强  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  如何在IIS7中新建站点?详细步骤解析  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  ,南京靠谱的征婚网站?  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  如何用wdcp快速搭建高效网站?  iOS中将个别页面强制横屏其他页面竖屏  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  如何获取PHP WAP自助建站系统源码?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  JS中对数组元素进行增删改移的方法总结  制作公司内部网站有哪些,内网如何建网站?  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  如何快速生成橙子建站落地页链接?  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  Java类加载基本过程详细介绍  Laravel如何实现多对多模型关联?(Eloquent教程)  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  Laravel如何生成API文档?(Swagger/OpenAPI教程)  Mybatis 中的insertOrUpdate操作  香港服务器租用费用高吗?如何避免常见误区?  node.js报错:Cannot find module 'ejs'的解决办法  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  Laravel如何生成URL和重定向?(路由助手函数)