docker离线搭建仓库

news/2024/11/29 19:47:56/

要在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 以使更改生效。然后就可以发布成功了


http://www.ppmy.cn/news/1379630.html

相关文章

先缓存第二集抖音接入 ,最近加班猛,就分享简单的知识,如何使用:关于使用replace的用法正则表达式

1、需求&#xff1a;比如在cocos creator策划让你制作一个预制体&#xff0c;标题要读取配置&#xff0c;然后中间显示的内容要滚动的&#xff0c;要做成一个通用的&#xff0c;然后给到的配置表是这样子的: 配置表&#xff1a;假设字段是这样子的 content "内容标题&…

redis最新版本在Windows系统上的安装

一、说明 这次安装操作主要是根据redis官网说明&#xff0c;一步步安装下来的&#xff0c;英语比较好的同学&#xff0c;可以直接看文章底部的超链接1&#xff0c;跳到官网按步操作即可。 目前redis的最新稳定版本为redis7.2。 二、Windows环境改造 Redis在Windows上不被官方…

03:HAL---中断

目录 一:中断 1:简历 2:AFIO 3:EXTI 4:NVIC基本结构 5:使用步骤 6:设计中断函数 二:中断的应用 A:对外式红外传感计数器 1:硬件介绍 2:计数代码 B:旋转编码计数器 1:硬件介绍 2:旋转编码器代码 C:按键控制LED D:代码总结 一:中断 1:简历 中断&#xff1a;在主程序…

cpu masks的初始化

在内核中&#xff0c;有几个位图变量是用作标识cpu数量和状态的&#xff0c;它们分别是&#xff1a; 变量名称用途循环所使用的宏cpu_possible_mask系统中有多少个可以运行的cpu核for_each_possible_cpucpu_present_mask系统中有多少个可处于运行状态的cpu核for_each_present_…

【漏洞复现】Linksys E2000 position.js 身份验证绕过漏洞(CVE-2024-27497)

0x01 产品简介 Linksys E2000是一款由思科&#xff08;Cisco&#xff09;品牌推出的无线路由器&#xff0c;它是一款支持2.4GHz和5GHz双频段的无线路由器&#xff0c;用户可以避开拥挤的2.4GHz频段&#xff0c;独自享受5GHz频段的高速无线生活。 0x02 漏洞概述 Linksys E200…

Java实现Tron(波场)区块链的开发实践(三)波场链水龙头、WEB3测试实战

上一节我们具体讲到Java实现Tron波场链的逻辑代码实现。 这一节我们通过部署和开发好的代码&#xff0c;针对测试链进行自测开发&#xff0c;准备测试环境。 1. 创建离线地址 首先我们需要一个离线地址&#xff0c;我们不需要在线进行创建&#xff0c;直接可以通过第一节的离…

Java线程锁之Lock的使用

Lock 的使用 Lock 是java 1.5 中引入的线程同步工具&#xff0c;它主要用于多线程下共享资源的控制。本质上Lock 仅仅是一个接口&#xff0c; 可以通过显式定义同步锁对象来实现同步&#xff0c;能够提供比synchronized 更广泛的锁定操作&#xff0c;并支持多个相关的 Lock接…

快速入门:JS对象/BOM/DOM/事件监听

本贴介绍JS相对进阶的知识&#xff0c;对于JavaScript的基础语法&#xff0c;本文不再赘述~ 一.JavaScript对象 1.Array数组对象 定义 var arr new Array(1,2,3); var arr[1,2,3]; 访问 arr[0]1; Js数组类似Java中的集合&#xff0c;长度&#xff0c;类型都可以改变。 如…