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

docker离线搭建仓库

要在Docker中搭建本地仓库,可以按照以下步骤进行操作:

  1. 首先安装 Docker。根据不同的操作系统选择合适的版本并完成安装过程。
  2. 打开命令行工具(如Terminal或PowerShell),运行以下命令来创建一个新的容器并将其设置为本地仓库:
  3.  下载仓库镜像 链接:https://pan.baidu.com/s/1f3pxuWbM3gZC8nbAdF3-Kw?pwd=pwyr 
    提取码:pwyr 
     
docker run -d --name registry -p 5000:5000 registry:latest

  1. 这会从官方的Registry镜像创建一个名为"registry"的容器,并将主机上的5000端口与容器内部的5000端口关联起来。
  2. 等待片刻后,使用以下命令确认容器正常运行:
  3.  
    docker ps
    应该能看到类似于 "CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES" 的输出结果,表示容器已经成功创建并处于运行状态。
  4. 现在就可以通过访问 http://localhost:5000 来查看本地仓库了。默认情况下,所有的镜像都存放在 /var/lib/registry/ 目录下。
  5. 若需要向本地仓库推送镜像,可以使用以下命令标记镜像并指定本地仓库的URL:
     
    docker tag <image_id> localhost:5000/<repository>:<tag>
  6. 最后,使用以下命令将标记好的镜像推送到本地仓库:
     
    docker push localhost:5000/<repository>:<tag>
  7. 当然,也可以使用以下命令拉取本地仓库中的镜像:
     
    docker pull localhost:5000/<repository>:<tag>


    错误分析

  8. 运行镜像报错:
  9. 当docker运行镜像时候,出现如下错误:
  10. docker: Error response from daemon: driver failed programming external connectivity on endpoint registry (c0e59dbe36afb92f8662abd10026ccf32b333033074be3054ab490147a6b3dce):  (iptables failed: iptables --wait - t nat -A DOCKER -p tcp -d 0/0 --dport 5000 -j DNAT --to-destination 172.17.0.2:5000 ! -i docker0: iptables: No chain/target/match by that name. (exit status 1)).
  11. 这个错误通常是由于iptables规则的问题导致的。Docker使用iptables来管理网络流量,包括将容器的端口映射到宿主机上。当Docker尝试设置这些规则时,可能会因为某些原因失败。

    为了解决这个问题,你可以尝试以下几个步骤:

    重启Docker服务:重启Docker服务可以解决网络相关的问题。
  12. sudo systemctl restart docker

    推送镜像到仓库不支持HTTP:

  13. 出现这个错误信息 "Get "https://192.168.136.129:5000/v2/": http: server gave HTTP response to HTTPS client" 意味着你尝试通过 HTTPS 协议去访问一个只支持 HTTP 协议的 Docker 仓库。

    这通常发生在以下几种情况:

  14. Docker 客户端被配置为默认使用 HTTPS 与仓库进行通信,而你的私有仓库实际上配置为只接受 HTTP 连接。
  15. 你可能正在使用一个公共的 Docker 仓库镜像(如 Docker Hub),但错误地配置了私有仓库的地址。
  16. 如果你的私有仓库支持 HTTPS,你需要检查是否已正确安装和配置了 SSL 证书。
  17. 如果你的私有仓库不支持 HTTPS,你需要在 Docker 客户端中禁用对 HTTPS 的强制使用。
  18. 你可以通过设置 Docker 守护进程的配置来禁用对 HTTPS 的强制使用。这通常涉及到编辑 /etc/docker/daemon.json 文件(如果不存在,则创建它),并添加或修改以下配置:

     
    {
    "insecure-registries": ["192.168.136.129:5000"]
    }

    然后重启 Docker 以使更改生效。然后就可以发布成功了

相关文章:

  • 用A*算法求解八数码问题
  • 【C++】STL(二) string容器
  • SpringBoot中定时任务、corn表达式
  • Oracle 的同义词(Synonym) 作用
  • 加速你的应用:探索Redis的极致性能与多样化应用
  • 客户案例|100M 768 维向量数据,Zilliz Cloud 稳定支持 Shulex VOC 业
  • Java基于SpringBoot+Vue的人事管理系统,附源码
  • 洛谷 P1036 [NOIP2002 普及组] 选数
  • WPF实现一个表格数据从cs获取动态渲染
  • linux使用LVM管理磁盘,并扩容“磁盘“
  • Windows安装Go语言及VScode配置
  • oracle触发器
  • 算法-贪心-112. 雷达设备
  • LeetCode 0299.猜数字游戏:计数
  • 如何正确选择国外服务器的带宽和线路呢?
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • Angular 2 DI - IoC DI - 1
  • CAP 一致性协议及应用解析
  • ES6系统学习----从Apollo Client看解构赋值
  • Java IO学习笔记一
  • JSDuck 与 AngularJS 融合技巧
  • leetcode98. Validate Binary Search Tree
  • nfs客户端进程变D,延伸linux的lock
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • React Transition Group -- Transition 组件
  • React 快速上手 - 07 前端路由 react-router
  • vue 个人积累(使用工具,组件)
  • 阿里云购买磁盘后挂载
  • 聚类分析——Kmeans
  • 聊聊redis的数据结构的应用
  • 聊聊sentinel的DegradeSlot
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  •  一套莫尔斯电报听写、翻译系统
  • 怎样选择前端框架
  • 阿里云重庆大学大数据训练营落地分享
  • 函数计算新功能-----支持C#函数
  • 如何在招聘中考核.NET架构师
  • ​queue --- 一个同步的队列类​
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • "无招胜有招"nbsp;史上最全的互…
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • ###C语言程序设计-----C语言学习(6)#
  • #13 yum、编译安装与sed命令的使用
  • (1)(1.9) MSP (version 4.2)
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (2020)Java后端开发----(面试题和笔试题)
  • (4) PIVOT 和 UPIVOT 的使用
  • (k8s中)docker netty OOM问题记录
  • (笔试题)合法字符串
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)