当前位置: 首页 > news >正文

docker (十二)-私有仓库

docker registry

我们可以使用docker push将自己的image推送到docker hub中进行共享,但是在实际工作中,很多公司的代码不能上传到公开的仓库中,因此我们可以创建自己的镜像仓库。
docker 官网提供了一个docker registry的私有仓库项目,可以方便的通过docker部署。
docker run -d -p 5000:5000 --restart always --name registry registry:2
docker image tag ruoyi-java:4.7.4 localhost:5000/ruoyi-java:4.7.4
docker push localhost:5000/ruoyi-java:4.7.4
docker pull localhost:5000/ruoyi-java:4.7.4

docker push默认使用HTTPS协议,而服务端的registry仓库使用的是HTTP。
解决这个问题,需要修改/etc/docker/daemon.json,加入

"insecure-registries": ["192.168.10.133:5000"]

harbor

habor是一个功能更强大镜像仓库,它具有完整的权限控制和Web界面,更符合我们的实际工作场景。

保存与加载image

当我们处于离线状态,比如在很多内网上不能访问互联网,这时候不能通过镜像仓库的方式共享image,我们可以使用导出和导入功能,手动拷贝镜像。
docker save会包含所有层,以及所有标签 + 版本信息。
docker save alpine:3.15 > alpine-3.15.tar  保存image
docker rmi alpine:3.15 删除本地image
docker load < alpine-3.15.tar 加载image

注意:
不要跟export和import命令混淆
docker save/load IMAGE save和load操作的是镜像
docker export/import CONTAINERexport和import操作对象是容器
image包含多个层,每一层都不可变,save保存的信息包含每个层和所有标签 + 版本信息。
容器运行的时候会创建一个可写入的容器层,所有的更改都写入容器层,export导出的只有容器层,不包含父层和标签信息。

具体搭建流程

 一 环境准备

安装docker和docker-compose

docker可选择二进制或yum安装(注意点:这里的如果是二进制安装,切忌不要配置zip,否则无法登录会报500或502错误

curl -SL https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose##测试
docker-compose version

二 harbor下载

Release 1.2.2 · goharbor/harbor · GitHubicon-default.png?t=N7T8https://github.com/goharbor/harbor/releases/tag/v1.2.2

v1.2 · Releases · goharbor/harbor (github.com)icon-default.png?t=N7T8https://github.com/goharbor/harbor/releases?expanded=true&page=15&q=v1.2输入v1.2-第15页为1.22版本

建议直接下载,使用wget太慢

三 跟着以下文档操作

Docker 私有仓库 harbor 搭建_docker构建harbor-CSDN博客

四 出现问题

 

这个错误表明在尝试推送镜像时,Docker 发现本地不存在标签为 192.168.10.133/library/photon 的镜像。这可能是因为你尚未在本地构建或拉取过具有该标签的镜像。 

1.构建镜像并打上标签:如果你已经有一个本地的镜像,并且希望将其推送到 192.168.10.133/library/photon 这个仓库,需要先为该镜像打上正确的标签,然后再进行推送

2. 推送的镜像于远程仓库中

总结:推送到指定的仓库的项目中,1.了解该项目推送命令 2.给要推送的镜像指定正确项目标签 3.推送 

相关文章:

  • go垃圾回收
  • c++入门(2)
  • 代码随想录算法训练营第四十七天|198. 打家劫舍、213. 打家劫舍 II、337. 打家劫舍 III。
  • VR虚拟现实技术应用到猪抗原体检测的好处
  • 蓝桥杯第十四届电子类单片机组决赛程序设计
  • MySql安全加固:可信IP地址访问控制 设置密码复杂度
  • 蓝桥杯 信号覆盖
  • 安装 git 与查看 version
  • LeetCode #104 二叉树的最大深度
  • 5G网络频谱划分与应用
  • C# 找出两个Rectangle或是矩形的相互重合与非重合部分?
  • 【C语言】常见的动态内存管理错误
  • AI Agent
  • 【Web】get请求和post请求的区别
  • fork创建子进程及僵尸进程的产生及规避
  • 网络传输文件的问题
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 30秒的PHP代码片段(1)数组 - Array
  • isset在php5.6-和php7.0+的一些差异
  • Javascript 原型链
  • JavaWeb(学习笔记二)
  • java小心机(3)| 浅析finalize()
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • NSTimer学习笔记
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 聊聊sentinel的DegradeSlot
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 试着探索高并发下的系统架构面貌
  • 协程
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 怎么将电脑中的声音录制成WAV格式
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​力扣解法汇总946-验证栈序列
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #pragma once
  • #在 README.md 中生成项目目录结构
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (windows2012共享文件夹和防火墙设置
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • .a文件和.so文件
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .net6+aspose.words导出word并转pdf
  • /run/containerd/containerd.sock connect: connection refused
  • ::前边啥也没有
  • :“Failed to access IIS metabase”解决方法
  • @Controller和@RestController的区别?