【Containerd】Containerd接入Harbor仓库

说明

在日常使用容器时,安全方便起见一般都会使用到私有仓库,一般都是采用 harbor 作为私有仓库,docker 对接 harbor 仓库非常简单,那么 containerd 如何对接 harbor 呢?

在内网使用 harbor 根据个人习惯,一般都是非 http 并且是通过IP 直接访问,如下:
在这里插入图片描述
harbor仓库地址为:http://192.168.10.250:80 ,containerd 如何上传或者下载镜像呢?

配置说明

生成配置文件

如果之前生成有就可以不用管了,否则会覆盖。
[root@kube-master ~]# mkdir -p /etc/containerd/
[root@kube-master ~]# containerd config default > /etc/containerd/config.toml

修改配置

大概从140多行开始

[root@kube-master ~]#  vim  /etc/containerd/config.toml[plugins."io.containerd.grpc.v1.cri".registry]config_path = "/etc/containerd/certs.d	#修改该行的配置信息

创建目录并添加配置

#上面的目录+harbor仓库地址
[root@kube-master ~]# mkdir  /etc/containerd/certs.d/192.168.10.250:80#编写 harbor 配置
[root@kube-master ~]# vim /etc/containerd/certs.d/192.168.10.250\:80/hosts.toml 
server = "http://192.168.10.250:80"
[host."http://192.168.10.250:80"]capabilities = ["pull", "resolve", "push"]skip_verify = true

重启服务

[root@kube-master ~]# systemctl restart containerd

验证上传下载

准备镜像

首先,从网络上下载一个镜像

[root@kube-master ~]# nerdctl pull ustc-edu-cn.mirror.aliyuncs.com/library/nginx:latest
[root@kube-master ~]# nerdctl images
REPOSITORY                                       TAG       IMAGE ID        CREATED        PLATFORM       SIZE         BLOB SIZE
mynginx                                          v1        786482a9a8cf    4 hours ago    linux/amd64    149.1 MiB    54.1 MiB
ustc-edu-cn.mirror.aliyuncs.com/library/nginx    latest    0d17b565c37b    4 hours ago    linux/amd64    149.1 MiB    54.1 MiB

为该镜像打TAG

[root@kube-master ~]# nerdctl tag ustc-edu-cn.mirror.aliyuncs.com/library/nginx:latest 
[root@kube-master ~]# nerdctl images
REPOSITORY                                       TAG       IMAGE ID        CREATED           PLATFORM       SIZE         BLOB SIZE
192.168.10.250/library/nginx                     latest    0d17b565c37b    12 seconds ago    linux/amd64    149.1 MiB    54.1 MiB
mynginx                                          v1        786482a9a8cf    4 hours ago       linux/amd64    149.1 MiB    54.1 MiB
ustc-edu-cn.mirror.aliyuncs.com/library/nginx    latest    0d17b565c37b    5 hours ago       linux/amd64    149.1 MiB    54.1 MiB

登录harbor

[root@kube-master ~]# nerdctl login  192.168.10.250
Enter Username: admin
Enter Password: 
WARN[0004] skipping verifying HTTPS certs for "192.168.10.250" 
WARNING: Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded

上传镜像

上传到 harbor 仓库

[root@kube-master ~]# nerdctl push 192.168.10.250/library/nginx:latest
INFO[0000] pushing as a reduced-platform image (application/vnd.docker.distribution.manifest.list.v2+json, sha256:b33f0d57636f392150918b206b91f32ab4d0a56cdba9e1b58acae3ea176fdffc) 
WARN[0000] skipping verifying HTTPS certs for "192.168.10.250" 
index-sha256:b33f0d57636f392150918b206b91f32ab4d0a56cdba9e1b58acae3ea176fdffc:    waiting        |--------------------------------------| 
manifest-sha256:ee89b00528ff4f02f2405e4ee221743ebc3f8e8dd0bfd5c4c20a2fa2aaa7ede3: waiting        |--------------------------------------| 
config-sha256:605c77e624ddb75e6110f997c58876baa13f8754486b461117934b24a9dc3a85:   waiting        |--------------------------------------| 
elapsed: 0.1 s                                                                    total:   0.0 B (0.0 B/s)                                         
WARN[0000] server "192.168.10.250" does not seem to support HTTPS, falling back to plain HTTP  error="failed to do request: Head \"https://192.168.10.250/v2/library/nginx/blobs/sha256:b4df32aa5a72e2a4316aad3414508ccd907d87b4ad177abd7cbd62fa4dab2a2f\": dial tcp 192.168.10.250:443: connect: connection refused"
index-sha256:b33f0d57636f392150918b206b91f32ab4d0a56cdba9e1b58acae3ea176fdffc:    waiting        |--------------------------------------| 
manifest-sha256:ee89b00528ff4f02f2405e4ee221743ebc3f8e8dd0bfd5c4c20a2fa2aaa7ede3: waiting        |--------------------------------------| 
config-sha256:605c77e624ddb75e6110f997c58876baa13f8754486b461117934b24a9dc3a85:   waiting        |--------------------------------------| 
elapsed: 1.3 s 

可以看到已经上传完成,中间有个小的警告,不影响使用。

harbor仓库查看镜像

在这里插入图片描述

可以看到,镜像已经上传到 harbor 仓库了。

删除本地镜像

[root@kube-master ~]# nerdctl rmi  192.168.10.250/library/nginx:latest
Untagged: 192.168.10.250/library/nginx:latest@sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
Deleted: sha256:2edcec3590a4ec7f40cf0743c15d78fb39d8326bc029073b41ef9727da6c851f
Deleted: sha256:e379e8aedd4d72bb4c529a4ca07a4e4d230b5a1d3f7a61bc80179e8f02421ad8
Deleted: sha256:b8d6e692a25e11b0d32c5c3dd544b71b1085ddc1fddad08e68cbd7fda7f70221
Deleted: sha256:f1db227348d0a5e0b99b15a096d930d1a69db7474a1847acbc31f05e4ef8df8c
Deleted: sha256:32ce5f6a5106cc637d09a98289782edf47c32cb082dc475dd47cbf19a4f866da
Deleted: sha256:d874fd2bc83bb3322b566df739681fbd2248c58d3369cb25908d68e7ed6040a6

启动容器

目前本地是没有镜像的,直接通过 nerdctl run 启动容器。当本地没有镜像时,会直接从 harbor 拉取镜像。

[root@kube-master ~]# nerdctl run --name ngx -d -p 80:80  192.168.10.250/library/nginx:latest
WARN[0000] skipping verifying HTTPS certs for "192.168.10.250" 
INFO[0000] trying next host                              error="failed to do request: Head \"https://192.168.10.250/v2/library/nginx/manifests/latest\": dial tcp 192.168.10.250:443: connect: connection refused" host=192.168.10.250
WARN[0000] server "192.168.10.250" does not seem to support HTTPS, falling back to plain HTTP  error="failed to resolve reference \"192.168.10.250/library/nginx:latest\": failed to do request: Head \"https://192.168.10.250/v2/library/nginx/manifests/latest\": dial tcp 192.168.10.250:443: connect: connection refused"
192.168.10.250/library/nginx:latest: resolving      |--------------------------------------| 
elapsed: 0.1 s                       total:   0.0 B (0.0 B/s)                                         
192.168.10.250/library/nginx:latest:                                              resolved       |++++++++++++++++++++++++++++++++++++++| 
index-sha256:b33f0d57636f392150918b206b91f32ab4d0a56cdba9e1b58acae3ea176fdffc:    done           |++++++++++++++++++++++++++++++++++++++| 
manifest-sha256:ee89b00528ff4f02f2405e4ee221743ebc3f8e8dd0bfd5c4c20a2fa2aaa7ede3: done           |++++++++++++++++++++++++++++++++++++++| 
config-sha256:605c77e624ddb75e6110f997c58876baa13f8754486b461117934b24a9dc3a85:   done           |++++++++++++++++++++++++++++++++++++++| 
elapsed: 0.2 s                                                                    total:   0.0 B (0.0 B/s)                                         
1461f0b94382f3a67f779f102b75b77066ec88acdb32b5c885805310131bcd1c
[root@kube-master ~]# nerdctl ps
CONTAINER ID    IMAGE                                  COMMAND                   CREATED          STATUS    PORTS                 NAMES
1461f0b94382    192.168.10.250/library/nginx:latest    "/docker-entrypoint.…"    7 seconds ago    Up        0.0.0.0:80->80/tcp    ngx

验证查看

[root@kube-master ~]# curl -I localhost
HTTP/1.1 200 OK
Server: nginx/1.21.5
Date: Mon, 24 Jun 2024 06:30:14 GMT
Content-Type: text/html
Content-Length: 615
Last-Modified: Tue, 28 Dec 2021 15:28:38 GMT
Connection: keep-alive
ETag: "61cb2d26-267"
Accept-Ranges: bytes

OK,nginx启动成功。

配置镜像加速

在上面的测试过程中,为啥会使用ustc-edu-cn.mirror.aliyuncs.com这个镜像库,而没有使用默认的镜像仓库,其实原因很简单。国内因为某些因素访问不了docker.io。下面我们通过配置国内镜像加速的方式,为 docker.io 配置镜像加速,如下:

[root@kube-master ~]# mkdir -p /etc/containerd/certs.d/docker.io
[root@kube-master ~]# vim /etc/containerd/docker.io/hosts.toml
server = "https://docker.io"
[host."https://5sssm2l6.mirror.aliyuncs.com"]   #注册阿里云可查看个人加速源

在这里插入图片描述
重启服务

[root@kube-master ~]# systemctl restart containerd

测试拉取镜像

[root@kube-master containerd]# nerdctl pull nginx:alpine
WARN[0000] skipping verifying HTTPS certs for "docker.io" 
docker.io/library/nginx:alpine:                                                   resolved       |++++++++++++++++++++++++++++++++++++++| 
index-sha256:eb05700fe7baa6890b74278e39b66b2ed1326831f9ec3ed4bdc6361a4ac2f333:    done           |++++++++++++++++++++++++++++++++++++++| 
manifest-sha256:544ba2bfe312bf2b13278495347bb9381ec342e630bcc8929af124f1291784bb: done           |++++++++++++++++++++++++++++++++++++++| 
config-sha256:cc44224bfe208a46fbc45471e8f9416f66b75d6307573e29634e7f42e27a9268:   done           |++++++++++++++++++++++++++++++++++++++| 
layer-sha256:40e5d2fe5bcd566dbde3e961f33ced0f1503fc6ee320a427b185a07afe2f96ae:    done           |++++++++++++++++++++++++++++++++++++++| 
layer-sha256:59bf1c3509f33515622619af21ed55bbe26d24913cedbca106468a5fb37a50c3:    done           |++++++++++++++++++++++++++++++++++++++| 
layer-sha256:f3322597df46099a66ed5773c10a9d1cb587faca7be14ceba985e3d1fbfdbc36:    done           |++++++++++++++++++++++++++++++++++++++| 
layer-sha256:d09cf91cabdcf5f64672598b8e4da9b0b7d8546e83ec49633bdd92abb994ba61:    done           |++++++++++++++++++++++++++++++++++++++| 
layer-sha256:3a97535ac2efcf94ab3e5f93a6ec4d934469de66909f17ba1229f86ee660970a:    done           |++++++++++++++++++++++++++++++++++++++| 
layer-sha256:919ade35f869e23d663ea51fdf2e99aa183239a73b4b4780e052c8b248ed5b7e:    done           |++++++++++++++++++++++++++++++++++++++| 
elapsed: 20.1s                                                                    total:  9.7 Mi (494.7 KiB/s)  [root@kube-master ~]# nerdctl  images
REPOSITORY                                       TAG       IMAGE ID        CREATED              PLATFORM       SIZE         BLOB SIZE
192.168.10.250/library/nginx                     latest    b33f0d57636f    About an hour ago    linux/amd64    149.1 MiB    54.1 MiB
mynginx                                          v1        786482a9a8cf    6 hours ago          linux/amd64    149.1 MiB    54.1 MiB
nginx                                            alpine    eb05700fe7ba    4 minutes ago        linux/amd64    26.4 MiB     9.7 MiB
ustc-edu-cn.mirror.aliyuncs.com/library/nginx    latest    0d17b565c37b    6 hours ago          linux/amd64    149.1 MiB    54.1 MiB

更多关于containerd的知识分享,请前往博客主页。编写过程中,难免出现差错,敬请指出

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

eNSP中ACL访问控制表的配置和使用

一、拓扑图 1.新建拓扑图 2.PC端配置 PC1: PC2: PC3: 二、基本命令配置 1.S1配置 <Huawei>system-view [Huawei]sysname S1 [S1]vlan 10 [S1-vlan10]vlan 20 [S1-vlan20]vlan 30 [S1-vlan30]quit [S1]interface Vlanif 10 [S1-Vlanif10]ip address 192.168.10…

Gradle学习-2 Groovy

1、Groovy基础语法 1.1、基本数据类型 Groovy支持数据类型&#xff1a;byte, short, int, long, float, double, char &#xff08;1&#xff09;创建一个Android Studio项目 &#xff08;2&#xff09;在根目录新建一个 leon.gradle&#xff0c;输入以下内容 leon.gradle…

Ansible自动化运维,(1)模块

ansible是基于Python语言实现的&#xff0c;模块化&#xff1a;调用特定的模块完成特定的任务&#xff0c;支持自定义模块&#xff0c;可使用任何编程语言写模块(账号&#xff0c;软件等)。部署简单&#xff0c;基于python和SSH&#xff0c;相对安全&#xff0c;基于OpenSSH。 …

高考填报志愿,为何要优先考虑个人兴趣 ?

随着高考成绩纷纷出炉&#xff0c;考生又要面对人生另外一个重要的选择&#xff0c;那便是填报志愿&#xff0c;这关系到自己能否进入满意的学校和专业。如果考生对上述两个方面都不满意&#xff0c;那高考目的就没有达到。既然填报志愿如此重要&#xff0c;考生和家长在选择的…

软件构造 | Design Patterns for Reuse and Maintainability

Design Patterns for Reuse and Maintainability &#xff08;面向可复用性和可维护性的设计模式&#xff09; Open-Closed Principle (OCP) ——对扩展的开放&#xff0c;对修改已有代码的封 Why reusable design patterns A design… …enables flexibility to change …

Nuxt3 [Vue warn]: Hydration node mismatch:【解决方案】

[Vue warn]: Hydration node mismatch: 水合节点不匹配 Server rendered element contains more child nodes than client vdom. 服务器呈现的元素包含的子节点多于客户端vdom。 这个问题解决起来也很好解决&#xff0c;看这个问题是怎么出来的&#xff0c;看代码&#xff1a;…

暗影精灵8Pro声音没有了,这个方法可以解决,亲测有效!

这个OMEN by HP Gaming Laptop 16-k0xxx Windows 10 Sound Driver Mod &#xff0c;真的解决了我的大问题&#xff01; 如果你的暗影精灵8 Pro酷睿版突然变得哑巴了&#xff0c;扬声器和麦克风都发不出声音&#xff0c;那可能是声卡驱动出了问题。 别担心&#xff0c;我也是个…

eNSP中三层交换机的配置和使用

一、拓扑图 1.新建拓扑图 2.PC端配置 PC1: PC2&#xff1a; 二、基本命令配置 1.S1配置 <Huawei>system-view [Huawei]sysname S1 [S1]vlan 10 //在交换机 S1 上创建 VLAN 10 [S1-vlan10]vlan 20 // 在交换机 S1 上创建 VLAN 20 [S1-vlan20]quit //退出 VLAN 配置…

舆论中心的《黑神话:悟空》:人们总希望,这只猴子能打破些什么

距离《黑神话&#xff1a;悟空》上线还有60天。外界关于游戏的争议有很多&#xff0c;但游戏科学却很少出来回应什么。 6月9日&#xff0c;博主兲虎发文称&#xff0c;《黑神话&#xff1a;悟空》之所以在发布宣传视频后&#xff0c;一直遭受到所谓性别歧视的攻击与污蔑&#…

短视频营销系统小程序源码

开启全新营销时代 &#x1f3a5;一、引言&#xff1a;短视频营销微信小程序&#xff0c;营销新风尚 在数字化时代&#xff0c;短视频以其直观、生动的特点迅速崛起&#xff0c;成为用户获取信息、娱乐消遣的重要渠道。而短视频营销微信小程序则是将短视频与微信营销完美结合&…

解决node: bad option: -V

出现这个问题是由于我们的不当操作造成的&#xff0c;v是需要小写的&#xff0c;看下图 node --version node -v

缓存双写一致性(笔记)

缓存更新方案 旁路缓存模式 这是比较多的 旁路缓存模式&#xff1a;缓存有就返回&#xff0c;没有数据库查询&#xff0c;放入缓存返回。 还有些常用缓存策略 读穿透模式 读穿透和旁路很相似&#xff0c;程序不需要关注从哪里读取数据&#xff0c;它只需要从缓存查询数据。…

从概念到现实:数字孪生技术在智慧充电站的实践

在电动汽车蓬勃发展的今天&#xff0c;充电基础设施的智能化升级成为了推动新能源汽车产业跃进的关键一环。数字孪生技术&#xff0c;作为智能制造和工业4.0的核心&#xff0c;正在逐渐渗透到智慧充电站的每一个角落——从提高能源效率到增强用户体验&#xff0c;为智慧充电站的…

强化学习-RLHF-PPO入门

一、定义 强化学习微调分类RM模型 数据集格式训练流程Reward 模型训练流程(分类模型&#xff0c;积极为1&#xff0c;消极为0) AutoModelForSequenceClassificationReward 模型训练案例PPO模型训练流程PPO模型训练案例 二、实现 强化学习微调分类 RLHF:基于人类反馈对语言模型…

机器学习之数学基础(七)~过拟合(over-fitting)和欠拟合(under-fitting)

目录 1. 过拟合与欠拟合 1.1 Preliminary concept 1.2 过拟合 over-fitting 1.3 欠拟合 under-fitting 1.4 案例解析&#xff1a;黑天鹅 1. 过拟合与欠拟合 1.1 Preliminary concept 误差 经验误差&#xff1a;模型对训练集数据的误差。泛化误差&#xff1a;模型对测试…

RabbitMQ 消息传递

消息何去何从 mandatory和immediate是channel.basicPublish方法中的两个参数&#xff0c;他们都有当消息传递过程中不可达目的地时将消息返回给生产者的功能。RabbitMQ提供的备份交换器可以将未能被交换器路由的消息&#xff08;没有绑定队列或者没有匹配的绑定&#xff09;存…

学习C++第三天——对引用的深入了解

引用 引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名&#xff0c;编译器不会为引用变量开辟内存空 间&#xff0c;它和它引用的变量共用同一块内存空间。 一个变量可以有多个引用&#xff1a; int main() {//一个变量可以有多个引用int a 10;int& b …

OpenAI 收购桌面实时协作公司 Multi;iOS 18 开放 iPhone 镜像测试丨RTE 开发者日报 Vol.231

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real-Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

c++ 设计模式 的课本范例(上)

( 0 ) 这里补充面向对象设计的几个原则&#xff1a; 开闭原则OCP &#xff1a; 面向增补开放&#xff0c;面向代码修改关闭。其实反映到代码设计上就是类的继承&#xff0c;通过继承与多态&#xff0c;可以不修改原代码&#xff0c;又增加新的类似的功能。 依赖倒置原则 Depend…

如何从iPhone恢复错误删除的照片

嘿&#xff0c;iPhone 用户&#xff01;作为一名苹果专业人士&#xff0c;我见过相当多的“哎呀&#xff0c;我删除了它&#xff01;”的时刻。今天&#xff0c;我在这里指导您完成从iPhone中恢复那些珍贵的&#xff0c;错误删除的照片的迷宫。坐下来&#xff0c;拿起你的设备&…