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

【docker】docker registry搭建私有镜像仓库

搭建私有镜像仓库

1)拉取私有仓库镜像:使用命令docker pull registry来拉取私有仓库的镜像。私有仓库本身就是一个镜像,通过该命令可以从Docker Hub或其他镜像仓库中获取。

2)启动私有仓库容器:使用命令 docker run -d -p 5000:5000 --restart=always --name registry registry 来启动私有仓库容器。这将创建一个名为registry的容器,将容器内的5000端口映射到主机的5000端口,并设置为总是重启。

默认情况下,仓库会被创建在容器的 /var/lib/registry 目录下,你可以通过 -v 参数来将镜像文件存放在本地的指定路径

例如下面的例子将上传的镜像放到本地的 /opt/data/registry 目录。

docker run -d \-p 5000:5000 \-v /opt/data/registry:/var/lib/registry \registry

启动成功后,可以使用 docker ps 查看

3)测试私有仓库:在浏览器中输入http://< your-server-ip >:5000/v2/_catalog,将替换为你的服务器IP地址,如果能够正常访问,说明私有仓库搭建成功。
http://< your-server-ip >:5000/v2/_catalog
注意:如果你的私有仓库没有使用https,需要在Docker客户端上修改/etc/docker/daemon.json文件(如果文件不存在则新建),添加私有仓库地址到"insecure-registries"列表中,然后重启Docker服务。例如,在daemon.json文件中添加以下内容:

{"insecure-registries": ["<your-server-ip>:5000"]
}

然后,使用命令systemctl restart docker重启Docker服务。

当配置了这个选项后,Docker 在与这些指定的镜像仓库通信时,将不再验证 TLS 证书,从而绕过了 Docker 的安全机制。

如果采用insecure registry的模式,那么所有与Registry交互的主机上的Docker Daemon都要配置:–insecure-registry选项,所有使用Registry 的客户端也需要配置–insecure-registry

推送镜像到私有库

  1. 修改镜像标签用于推送
    docker tag docker.xxx.com/summerwind/actions-runner:latest <your-server-ip>:5000/docker.mybacc.com/summerwind/actions-runner:latest
    
  2. 推送到私有仓库
    docker push <your-server-ip>:5000/docker.xxx.com/summerwind/actions-runner:latest
    
    示例:
    私有仓库镜像
  3. 拉取镜像
docker pull <your-server-ip>:5000/docker.xxx.com/summerwind/actions-runner:latest

harbor是 VMware 公司开源了企业级 Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker registry 服务。

安装BuildKit (可忽略)

不需要此步骤,这是我对action任务构建准备使用的buildkit的误读,但是我既然已经启用了这个特性就不删除这部分内容了。
BuildKit是Docker的一个实验性特性,它提供了一种更强大、灵活的构建方式。您可以通过以下命令启用BuildKit:

# 确保您的Docker版本支持BuildKit
docker version
# 启动Docker守护进程并启用实验性特性
dockerd --experimental
# 启用BuildKit
export DOCKER_BUILDKIT=1
# 验证
echo $DOCKER_BUILDKIT
# 输出:1

dockerd --experimental输出failed to start daemon, ensure docker is not running or delete /var/run/docker.pid: process with PID 15050 is still running

{"exec-opts": ["native.cgroupdriver=systemd"],"experimental": true
}

重启dockersystemctl restart docker,验证实验特性是否已启用docker info | grep Experimental
输出:Experimental: true

参考

docker搭建私有仓库
使用BuildKit构建Docker镜像并推送至Harbor仓库

http://www.xdnf.cn/news/979543.html

相关文章:

  • 开源 java android app 开发(十二)封库.aar
  • SD-WAN 技术如何助力工业物联网(IIoT)数据传输?深度解析传统方案对比与应用实践
  • Chrome 优质插件计划
  • 智慧农业物联网实训中心建设方案
  • 趋境科技英特尔生态沙龙举办,打通大模型私有化“最后一公里”
  • 当简约美学融入小程序 UI 设计:开启高效交互新篇
  • 【Java学习日记38】:C语言 fabs 与 Java abs 绝对值函数
  • element plus的el-form重置无效
  • CavityPlus: 北大团队研发的综合性蛋白质结合位点检测及功能分析网络服务器
  • 【python】预测投保人医疗费用,附insurance.csv数据集
  • 嵌入式系统内核镜像相关(三)
  • React 状态管理指南:Redux 原理与优化策略
  • 避坑:启动sdk-c demo master需要注意的事情
  • 【AI】模型vs算法(以自动驾驶为例)
  • 基于React Native的HarmonyOS 5.0休闲娱乐类应用开发
  • 多分类性能评估方法
  • 企业级RAG系统架构设计与实现指南(基于Java技术栈)
  • uniapp 腾讯云 COS 访问控制实战(细粒度权限管理)
  • 撤销Git合并操作方法总结
  • 七牛云域名配置与CNAME解析
  • 李沐 《动手学深度学习》 | 实战Kaggle比赛:预测房价
  • 【PhysUnits】17.7 readme.md更新
  • 从代码学习深度强学习 - Dyna-Q 算法 PyTorch版
  • Android Gson工具类
  • 免下载苹果 IPA 文件重签名工具:快速更换应用名称和 BID的教程
  • xcode中project.pbxproj点开为空白问题
  • Linux Swap分区应该禁用吗?深入辨析其作用与性能优化
  • Spring @Qualifier,@Primary
  • 接收rabbitmq消息
  • 记录下three.js学习过程中不理解问题----材质(material)⑤