Ubuntu下搭建自己的Docker镜像仓库

Docker安装由于网络问题很少能自己拉取成功,常用的方法有几种:

1、离线导出和导入

     找到可以正常运行的服务器,使用docker save备份镜像,复制到目标机器后用docker load导入即可。

2、搭建私有仓库

      参考之前的实践,在使用时要么替换docker位置,要么修改/etc/docker/daemon.json。这个方法需要把镜像存储在自己的服务器上。比起离线的好处是一次推送,可以多人使用,尤其在内网环境更加方便

     搭建方法参考:

     ubuntu 24搭建docker私有仓库-CSDN博客 ​​​​​​​

3、使用Ubuntu 24.04搭建镜像仓库

3.1 环境准备

           a)最好申请国外站点,比如腾讯云的新加坡站点,几十块一年,每月有1024G流量,自己使用足够了。

           b)有自己的域名。https服务器需要证书,使用域名可以绑定申请

3.2 配置域名解析

    域名注册解析方面,建议使用二级域名:docker,先配置docker的A记录解析到云主机,再配置“*记录”,类型为”CNAME”,记录值为“docker.自己的域名”

3.3 升级docker-compose

ubuntu 24.04手工升级docker-compose到2.28+

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# Apply executable permissions to the binary

sudo chmod +x /usr/local/bin/docker-compose

# Verify the installation

docker-compose version

3.4 下载一键安装脚本并执行

可以试试直接执行:bash -c "$(curl -fsSL https://raw.githubusercontent.com/kubesre/docker-registry-mirrors/main/dockerproxy/install/DockerProxy_Install.sh)"

如果失败尝试下载到本地执行。

wget https://raw.githubusercontent.com/kubesre/docker-registry-mirrors/main/dockerproxy/install/DockerProxy_Install.sh

修改DockerProxy_Install.sh,执行替换“docker compose”为"docker-compose",使用chmod +x DockerProxy_Install.sh增加可执行权限

安装和配置过程,按提示操作即可。

务必确保安装前域名解析已经完成并在云主机和防火墙的443的端口已经放行。

3.5 安装日志

我的安装日志如下(域名已经做了临时处理,非正式域名)

ystem release:: Ubuntu
[INFO] System version: 24.04 LTS (Noble Numbat)
[INFO] System ID: ubuntu
[INFO] System ID Like: debian
[INFO] 内存资源充足。请继续.(31%)
[INFO] 防火墙已被禁用.
[INFO] 是否执行软件包安装? [y/n]: n
[WARN] 跳过软件包安装步骤。
[INFO] ====================== 安装Docker ======================
[INFO] docker 已安装,安装版本为:Docker version 24.0.7, build 24.0.7-0ubuntu4.1
Warning: The unit file, source configuration file or drop-ins of docker.service changed on disk. Run 'systemctl daemon-reload' to reload units.
[INFO] ======================= 开始安装DOCKER PROXY =======================
[+] Running 2/2
 ✔ Container gateway  Started                                                                                                                                                                                                            13.0s 
 ✔ Container crproxy  Started                                                                                                                                                                                                            13.0s 
[INFO] ======================= 检测DOCKER PROXY部署状态 =======================
[INFO] DOCKER PROXY 服务部署成功!
[INFO] ======================= 检测DOCKER PROXY部署状态 =======================
[INFO] DOCKER PROXY 服务部署成功!
[INFO] ======================= 配置域名 =======================
[WARN] 网关域名是可以让你以增加前缀的方式拉取源仓库的镜像,配置前请确认域名的[@记录和*记录]已经解析到该服务器!
[INFO] 请输入域名(如:kubesre.xyz): docker.abc.com
[INFO] 正在为 docker.abc.com 申请ssl证书...
[INFO] docker.abc.com 域名配置成功!
[INFO] 是否配置常用仓库别名? [y/n]: y
[INFO] ======================= 检测DOCKER PROXY部署状态 =======================
[INFO] DOCKER PROXY 服务部署成功!
[INFO] ======================= 增加常用别名仓库 =======================
[INFO] ======================= 检测DOCKER PROXY部署状态 =======================
[INFO] DOCKER PROXY 服务部署成功!
[INFO] 正在为 l5d.docker.abc.com 申请ssl证书...
[INFO] ======================= 检测DOCKER PROXY部署状态 =======================
[INFO] DOCKER PROXY 服务部署成功!
[INFO] 正在为 elastic.docker.abc.com 申请ssl证书...
[INFO] ======================= 检测DOCKER PROXY部署状态 =======================
[INFO] DOCKER PROXY 服务部署成功!
[INFO] 正在为 docker.docker.abc.com 申请ssl证书...
[INFO] ======================= 检测DOCKER PROXY部署状态 =======================
[INFO] DOCKER PROXY 服务部署成功!
[INFO] 正在为 gcr.docker.abc.com 申请ssl证书...
[INFO] ======================= 检测DOCKER PROXY部署状态 =======================
[INFO] DOCKER PROXY 服务部署成功!
[INFO] 正在为 ghcr.docker.abc.com 申请ssl证书...
[INFO] ======================= 检测DOCKER PROXY部署状态 =======================
[INFO] DOCKER PROXY 服务部署成功!
[INFO] 正在为 k8s-gcr.docker.abc.com 申请ssl证书...
[INFO] ======================= 检测DOCKER PROXY部署状态 =======================
[INFO] DOCKER PROXY 服务部署成功!
[INFO] 正在为 k8s.docker.abc.com 申请ssl证书...
[INFO] ======================= 检测DOCKER PROXY部署状态 =======================
[INFO] DOCKER PROXY 服务部署成功!
[INFO] 正在为 mcr.docker.abc.com 申请ssl证书...
[INFO] ======================= 检测DOCKER PROXY部署状态 =======================
[INFO] DOCKER PROXY 服务部署成功!
[INFO] 正在为 nvcr.docker.abc.com 申请ssl证书...
[INFO] ======================= 检测DOCKER PROXY部署状态 =======================
[INFO] DOCKER PROXY 服务部署成功!
[INFO] 正在为 quay.docker.abc.com 申请ssl证书...
[INFO] ======================= 检测DOCKER PROXY部署状态 =======================
[INFO] DOCKER PROXY 服务部署成功!
[INFO] 正在为 jujucharms.docker.abc.com 申请ssl证书...
[INFO] ======================= 检测DOCKER PROXY部署状态 =======================
[INFO] DOCKER PROXY 服务部署成功!
[INFO] 正在为 rocks-canonical.docker.abc.com 申请ssl证书...

[INFO] =================感谢您的耐心等待,安装已经完成==================
[INFO] 
[INFO] 请用增加前缀 docker.abc.com 的方式拉取镜像 
[INFO] 源镜像拉取地址: docker pull quay.io/argoproj/argocd:v2.11.0
[INFO] 增加前缀拉取地址:docker pull docker.abc.com/quay.io/argoproj/argocd:v2.11.0
[INFO] 
[INFO] 
[INFO] 你已经添加常用别名仓库,也可以使用替换前缀方式拉取镜像: 
[INFO] 源镜像拉取地址: docker pull quay.io/argoproj/argocd:v2.11.0
[INFO] 替换前缀拉取地址:docker pull quay.docker.abc.com/argoproj/argocd:v2.11.0
[INFO] 
[INFO] 
[INFO] 别名仓库列表如下:
[INFO] 原仓库: cr.l5d.io 别名仓库:l5d.docker.abc.com
[INFO] 原仓库: docker.elastic.co 别名仓库:elastic.docker.abc.com
[INFO] 原仓库: docker.io 别名仓库:docker.docker.abc.com
[INFO] 原仓库: gcr.io 别名仓库:gcr.docker.abc.com
[INFO] 原仓库: ghcr.io 别名仓库:ghcr.docker.abc.com
[INFO] 原仓库: k8s.gcr.io 别名仓库:k8s-gcr.docker.abc.com
[INFO] 原仓库: registry.k8s.io 别名仓库:k8s.docker.abc.com
[INFO] 原仓库: mcr.microsoft.com 别名仓库:mcr.docker.abc.com
[INFO] 原仓库: nvcr.io 别名仓库:nvcr.docker.abc.com
[INFO] 原仓库: quay.io 别名仓库:quay.docker.abc.com
[INFO] 原仓库: registry.jujucharms.com 别名仓库:jujucharms.docker.abc.com
[INFO] 原仓库: rocks.canonical.com 别名仓库:rocks-canonical.docker.abc.com
[INFO] 
[INFO] 代码仓库: https://github.com/kubesre/docker-registry-mirrors
[INFO] 
[INFO] 如果使用的是云服务器,请在安全组中开放80,443端口
[INFO] 
[INFO] ================================================================

4、使用,修改镜像服务器地址

sudo vim /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://docker.your_domain_name"
  ]
}

这里需要替换为自己的域名。

刷新缓存

sudo systemctl daemon-reload

sudo systemctl restart docker

接着就可以正常使用了。

5、参考资料

官方文档:

docker-registry-mirrors/dockerproxy/README.md at main · kubesre/docker-registry-mirrors

使用一键脚本搭建自己的镜像加速仓库

https://cloud.tencent.com/developer/article/2428821

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/904215.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Unity基础】初识UI Toolkit - 编辑器UI

(本文所需图片在文章上面的资源中,点击“立即下载”。) 本文介绍了如何通过UI工具包(UI Toolkit)来创建一个编辑器UI。 一、创建项目 1. 打开Unity创建一个空项目(任意模板),这里我…

NVR小程序接入平台/设备EasyNVR多个NVR同时管理多平台级联与上下级对接的高效应用

政务数据共享平台的建设正致力于消除“信息孤岛”现象,打破“数据烟囱”,实现国家、省、市及区县数据的全面对接与共享。省市平台的“级联对接”工作由多级平台共同构成,旨在满足跨部门、跨层级及跨省数据共享的需求,推动数据流通…

Android 获取OAID

获取OAID 老规矩,直接上: implementation com.huawei.hms:opendevice:6.11.0.300 // 要获取华为vaid 和aaid,还需添加opendevice 依赖implementation(name: oaid_sdk_2.5.0, ext: aar) import android.content.Context; import android.util.…

Flume采集Kafka数据到Hive

版本: Kafka:2.4.1 Flume:1.9.0 Hive:3.1.0 Kafka主题准备: Hive表准备:确保hive表为:分区分桶、orc存储、开启事务 Flume准备: 配置flume文件: /opt/datasophon/flume-1…

还在担心你收藏的书签下架或失效?试试这款自托管书签管理器『Linkwarden』吧!

还在担心你收藏的书签下架或失效?试试这款自托管书签管理器『Linkwarden』吧! 哈喽,小伙伴儿们好,我是Stark-C~ 随着大家在网上收藏的浏览器书签越来越多,难免会导致管理混乱的问题。可能会在我们需要的时候难以找到…

MySQL与金蝶云星空数据集成,实现生产用料清单自动刷新

MySQL数据集成到金蝶云星空:zz-生产用料清单主动刷新 在企业的日常运营中,数据的及时性和准确性至关重要。为了实现MySQL数据库与金蝶云星空系统之间的数据无缝对接,我们设计并实施了一个名为“zz-生产用料清单主动刷新”的集成方案。本案例…

八,Linux基础环境搭建(CentOS7)- 安装Mysql和Hive

Linux基础环境搭建(CentOS7)- 安装Mysql和Hive 大家注意以下的环境搭建版本号,如果版本不匹配有可能出现问题! 一、Mysql下载及安装 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Orac…

计算机毕业设计Python+大模型恶意木马流量检测与分类 恶意流量监测 随机森林模型 深度学习 机器学习 数据可视化 大数据毕业设计 信息安全 网络安全

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! Python大模型恶意木马流量检…

Conditional DETR论文笔记

原文链接 [2108.06152] Conditional DETR for Fast Training Convergencehttps://arxiv.org/abs/2108.06152 原文笔记 What 《Conditional DETR for Fast Training Convergence》 这个工作也是针对于DETR Query的工作 用于解决DETR训练收敛慢(Object query需要…

LoRA微调,真的有毒!

本文介绍一篇相当有意思的文章,该文章的内容对我们使用指令微调将预训练模型改造为 Chat 模型和下游专业模型相当有指导意义。 本文的标题听起来有些唬人,有些标题党,但是这个论点在一定的限定条件下是成立的,笔者归纳为&#xf…

Qt——信号和槽

一.信号和槽概述 谈及信号,很容易联想到在Linux系统中所分享到的信号。那么Linux信号和Qt信息有什么不同? 在 Qt 中,用户和控件的每次交互过程称为⼀个事件。比如 "用户点击按钮" 是⼀个事件,"用户关 闭窗口&quo…

Nginx反向代理(下)

1. WebSocket的反向代理 WebSocket 是目前比较成熟的技术了, WebSocket 协议为创建客户端和服务器端需要实时双向通讯的 webapp 提供了一个选择。服务器可以向浏览器推送相关消息,这样在前端实现的某个页面中我们可以及时看到服务器的状态变化而不用使用定时刷新去…

2024年10月中国数据库排行榜:TiDB续探花,GaussDB升四强

10月中国数据库流行度排行榜如期发布,再次印证了市场分层的加速形成。国家数据库测评结果已然揭晓,本批次通过的产品数量有限,凸显了行业标准的严格与技术门槛的提升。再看排行榜,得分差距明显增大,第三名与后续竞争者…

【C++】RBTree——红黑树

文章目录 一、红黑树的概念1.1 红⿊树的规则:1.2 理解最长路径长度不超过最短路径长度的 2 倍1.3 红⿊树的效率 二、 红⿊树的实现2.1 红⿊树的结构2.2 红⿊树的插⼊2.2.1 红⿊树树插⼊⼀个值的⼤概过程 2.3 红⿊树的插⼊代码实现 一、红黑树的概念 红⿊树是⼀棵⼆…

git下载和配置

git是什么? Git是一种分布式版本控制系统,用于跟踪文件的变化,尤其是源代码。它允许多个开发者在同一项目上进行协作,同时保持代码的历史记录。Git的主要特点包括: 分布式:每个开发者都有项目的完整副本&a…

[MySQL#6] 表的CRUD (1) | Create | Retrieve(查) | where

目录 1. 插入 1.1 单行数据 - 全列插入 指定列插入 1.2 多行数据 - 全列插入 指定列插入 1.3 更新 1.4 替换 2. 查找 2.1 select 列 2.2 where 条件 具体案例 2.3 结果排序 总结关键字执行顺序 2.4 筛选分页结果 CRUD : Create(创建),Retrieve(读取)&…

C语言:代码运行的底层奥秘,编译和链接

目录 翻译环境和运行环境编译环境预编译(预处理)编译词法分析语法分析语义分析 汇编 链接运行环境 翻译环境和运行环境 在ANSI C的任何⼀种实现中,存在两个不同的环境。 第1种是翻译环境,在这个环境中源代码被转换为可执行的机器…

2024 FinTechathon 校园行:助力高校学生探索金融科技创新

在金融科技蓬勃发展的当下,人才培养成为推动行业前行的关键。为推进深圳市金融科技人才高地建设,向高校学子提供一个展示自身知识、能力和创意的平台,2024 FinTechathon 深圳国际金融科技大赛——西丽湖金融科技大学生挑战赛重磅开启&#xf…

第7章 内容共享

第 7 章 内容共享 bilibili学习地址 github代码地址 本章介绍Android不同应用之间共享内容的具体方式,主要包括:如何利用内容组件在应用之间共享数据,如何使用内容组件获取系统的通讯信息,如何借助文件提供器在应用之间共享文件…

控制台安全内部:创新如何塑造未来的硬件保护

在 Help Net Security 的采访中,安全研究人员 Specter 和 ChendoChap 讨论了游戏机独特的安全模型,并强调了它与其他消费设备的不同之处。 他们还分享了对游戏机安全性的进步将如何影响未来消费者和企业硬件设计的看法。 斯佩克特 (Specter) 是本周在阿…