热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

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

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

安装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 

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


推荐阅读
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • 本文将详细介绍如何注册码云账号、配置SSH公钥、安装必要的开发工具,并逐步讲解如何下载、编译 HarmonyOS 2.0 源码。通过本文,您将能够顺利完成 HarmonyOS 2.0 的环境搭建和源码编译。 ... [详细]
  • Python 3 Scrapy 框架执行流程详解
    本文详细介绍了如何在 Python 3 环境下安装和使用 Scrapy 框架,包括常用命令和执行流程。Scrapy 是一个强大的 Web 抓取框架,适用于数据挖掘、监控和自动化测试等多种场景。 ... [详细]
  • Docker 中创建 CentOS 容器并安装 MySQL 进行本地连接
    本文详细介绍了如何在 Docker 中创建 CentOS 容器,并在容器中安装 MySQL 以实现本地连接。文章内容包括镜像拉取、容器创建、MySQL 安装与配置等步骤。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 如何在Windows内置的Ubuntu系统中更改SSH服务的端口号设置
    如何在Windows内置的Ubuntu系统中更改SSH服务的端口号设置 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • Parallels Desktop for Mac 是一款功能强大的虚拟化软件,能够在不重启的情况下实现在同一台电脑上无缝切换和使用 Windows 和 macOS 系统中的各种应用程序。该软件不仅提供了高效稳定的性能,还支持多种高级功能,如拖放文件、共享剪贴板等,极大地提升了用户的生产力和使用体验。 ... [详细]
  • 利用ZFS和Gluster实现分布式存储系统的高效迁移与应用
    本文探讨了在Ubuntu 18.04系统中利用ZFS和Gluster文件系统实现分布式存储系统的高效迁移与应用。通过详细的技术分析和实践案例,展示了这两种文件系统在数据迁移、高可用性和性能优化方面的优势,为分布式存储系统的部署和管理提供了宝贵的参考。 ... [详细]
  • 在 Mac 上配置 NDK
    本文详细介绍了如何在 Mac 上配置 Android NDK,包括设置环境变量和解决常见问题的方法。 ... [详细]
  • 浅析python实现布隆过滤器及Redis中的缓存穿透原理_python
    本文带你了解了位图的实现,布隆过滤器的原理及Python中的使用,以及布隆过滤器如何应对Redis中的缓存穿透,相信你对布隆过滤 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 在 Axublog 1.1.0 版本的 `c_login.php` 文件中发现了一个严重的 SQL 注入漏洞。该漏洞允许攻击者通过操纵登录请求中的参数,注入恶意 SQL 代码,从而可能获取敏感信息或对数据库进行未授权操作。建议用户尽快更新到最新版本并采取相应的安全措施以防止潜在的风险。 ... [详细]
author-avatar
我确实是一只猪_143_267
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有