【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-store

Login 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的知识分享,请前往博客主页。编写过程中,难免出现差错,敬请指出

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

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

相关文章

【ai】jetson:编译安装CUDA工具

编译安装CUDA工具 jetson cuda 检测GPU信息 进入/usr/local/cuda-10.2/samples/1_Utilities 0_Simple 1_Utilities 2_Graphics 3_Imaging 4_Finance 5_Simulations 6_Advanced 7_CUDALibraries common EULA.txt Makefile nvidia@tx2-nx:/usr/local/cuda-10.2/sample…

【日常记录】【JS】优雅检测用户是否在指定元素的外部点击

文章目录 1、界面基本布局2、代码实现3、参考链接 1、界面基本布局 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…

2-16 基于matlab的动载荷简支梁模态分析程序

基于matlab的动载荷简支梁模态分析程序&#xff0c;可调节简支梁参数&#xff0c;包括截面宽、截面高、梁长度、截面惯性矩、弹性模量、密度。输出前四阶固有频率&#xff0c;任意时刻、位置的响应结果。程序已调通&#xff0c;可直接运行。 2-16 matlab 动载荷简支梁模态分析 …

【算法学习】判断点在多边形内外的算法以及确定内外两点连线与边界的交点

1.前言&#xff1a; 在GIS开发中&#xff0c;经常会遇到确定一个坐标点是否在一块区域的内部这一问题。 如果这个问题不是一个单纯的数学问题&#xff0c;例如&#xff1a;在判断DEM、二维图像像素点、3D点云点等含有自身特征信息的这些点是否在一个区域范围内部的时候&#x…

Ubuntu24.04下安装docker,并pull ubuntu22.04,然后编译安装vpp

一、docker安装说明 解决官方源无法下载的问题 二、使用步骤 1.更新软件包索引 sudo apt update2.安装必要的软件包&#xff0c;以允许apt通过HTTPS使用仓库 sudo apt install apt-transport-https ca-certificates curl software-properties-common3.添加Docker的官方GPG…

算法训练营day20--235. 二叉搜索树的最近公共祖先+701.二叉搜索树中的插入操作 +450.删除二叉搜索树中的节点

一、235. 二叉搜索树的最近公共祖先 题目链接&#xff1a;https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/ 文章讲解&#xff1a;https://programmercarl.com/0235.%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E6%9C%80%E8%BF%91…

基于改进YOLOv5的安全帽检测算法 | 引入Ghost卷积 + 添加CA注意力机制 + 更换Neck网络之BiFPN + 更换损失函数之WIoU

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。为了解决建筑工地、隧道、煤矿等施工场景中现有安全帽检测算法对于小目标、密集目标以及复杂环境下的检测精度低的问题&#xff0c;设计实现了一种基于YOLOv5的改进目标检测算法&#xff0c;记为YOLOv5-GBCW。首先使用Ghos…

Webpack: 如何借助预处理器、PostCSS 等构建现代 CSS 工程环境

概述 在开发 Web 应用时&#xff0c;我们通常需要编写大量 JavaScript 代码 —— 用于控制页面逻辑&#xff1b;编写大量 CSS 代码 —— 用于调整页面呈现形式。问题在于&#xff0c;CSS 语言在过去若干年中一直在追求样式表现力方面的提升&#xff0c;工程化能力薄弱&#xff…

MySQL中的Bin-log是什么?有什么作用?

Bin-log日志也被称之为二进制日志&#xff0c;作用与Redo-log类似&#xff0c;主要是记录所有对数据库表结构变更和表数据修改的操作&#xff0c;对于select、show这类读操作并不会记录。bin-log是MySQL-Server级别的日志&#xff0c;所有引擎都能用的日志&#xff0c;而redo-l…

线程安全问题(一)——锁的简单使用

多线程安全问题 线程安全问题的引入案例引入多线程指令排序问题 线程不安全的原因解决线程不安全的方法锁的引入上锁和解锁过程一个简单的锁Demo对这个案例进行几次修改 总结 线程安全问题的引入 在前面的博文中&#xff0c;我们了解到通过Thread.join()的方法让线程进入等待&…

达梦(DM8)数据库备份与还原(逻辑备份)二

一、达梦数据库的逻辑备份分四种级别的导出&#xff08;dexp&#xff09;与导入&#xff08;dimp&#xff09;的备份 第一种是&#xff1a;数据库级&#xff1a;导出或导入数据库中所有的对象。主要参数是&#xff1a;FULL 第二种是&#xff1a;用户级别&#xff1a;导出或导…

Linux系统中根下的目录结构介绍

一、Linux的路径分隔符 Linux系统中使用正斜杠(/)作为路径分隔符&#xff1b;每个目录的后面都默认带有一个正斜杠&#xff08;如&#xff1a;需要进入opt目录可以分别使用【cd /opt】或【cd /opt/】&#xff09; 二、Linux根目录下各个目录结构介绍 红色标识的文件夹为Linux的…

01数字电子技术基础

第一节课&#xff1a;introduction 导论 决定了这门课的学习方法、学习内容、一个大概的把握、虽不是具体的技术&#xff0c;不是细节&#xff0c;但是这是一节思想 每门课都重要&#xff0c;但侧重点不同。 学习前人的思想和营养&#xff0c;为自己所用。 1.课程性质&#x…

基于javassm实现的大学图书管理系统网站

开发语言&#xff1a;Java 框架&#xff1a;ssm 操作系统&#xff1a;Windows 7&#xff1b; 数据库&#xff1a;Mysql&#xff1b; 开发工具包&#xff1a;JDK Version1.6&#xff1b; JSP服务器&#xff1a;Tomcat&#xff1b; 浏览器&#xff1a;IE8.0&#xff0c;推荐…

使用Python和NLTK进行NLP分析的高级指南

在本文中&#xff0c;将利用数据集来比较和分析自然语言。 本文涵盖的基本构建块是&#xff1a; WordNet和同义词集相似度比较树和树岸命名实体识别 WordNet和同义词集 WordNet是NLTK中的大型词汇数据库语料库。WordNet维护与名词&#xff0c;动词&#xff0c;形容词&#…

关于ip地址的网页无法访问navigator的gpu、媒体、蓝牙等设备的解决方法

在使用threejs的WebGPURenderer渲染器时&#xff0c;发现localhost以及127.0.0.1才能访问到navigator.gpu&#xff0c;直接使用ip会变成undefined,原因是为了用户的隐私安全&#xff0c;只能在安全的上下文中使用&#xff0c;非安全的上下文就会是undefined&#xff0c;安全上下…

[面试题]Zookeeper

[面试题]Java【基础】[面试题]Java【虚拟机】[面试题]Java【并发】[面试题]Java【集合】[面试题]MySQL[面试题]Maven[面试题]Spring Boot[面试题]Spring Cloud[面试题]Spring MVC[面试题]Spring[面试题]MyBatis[面试题]Nginx[面试题]缓存[面试题]Redis[面试题]消息队列[面试题]…

第4章 客户端-客户端通信协议

Redis是用单线程来处理多个客户端的访问&#xff0c;因此作为Redis的开发和运维人员需要了解Redis服务端和客户端的通信协议&#xff0c;以及主流编程语言的Redis客户端使用方法&#xff0c;同时还需要了解客户端管理的相应API以及开发运维中可能遇到的问题。 几乎所有的主流编…

网络协议TCP/IP, HTTP/HTTPS介绍

TCP/IP协议 TCP/IP是一种基于连接的通信协议&#xff0c;它是互联网的基础协议。TCP代表传输控制协议&#xff0c;IP代表Internet协议。虽然这两个协议通常一起提及&#xff0c;但它们实际上是分开的&#xff1a;IP负责在网络中从一台计算机向另一台计算机发送数据包&#xff0…