[Ubuntu 22.04] containerd配置HTTP方式拉取私仓Harbor

news2025/1/11 0:29:07

文章目录

  • 1. 基础环境配置
  • 2. Docker安装
  • 3. 部署Harbor,HTTP访问
  • 4. 部署ContainerD
  • 5. 修改docker配置文件,向harbor中推入镜像
  • 6. 配置containerd
    • 6.1. 拉取镜像验证
    • 6.2. 推送镜像验证

1. 基础环境配置

  [Ubuntu 22.04] 安装K8S基础环境准备脚本

2. Docker安装

  [Ubuntu 22.04] 安装docker,并设置镜像加速

3. 部署Harbor,HTTP访问

  [Ubuntu 22.04] 安装Harbor#HTTP方式

  浏览器中输入:http://192.168.11.20,即可访问刚才部署的harbor

4. 部署ContainerD

  [Ubuntu 22.04] 安装containerd

5. 修改docker配置文件,向harbor中推入镜像

  目标:向第三步部署的harbor仓库中推入镜像仓库

  根据目前的环境,有两种方式可以向horbor中推入镜像。其一是通过dockerharbor中推入镜像仓库。其二是通过containerdharbor中推入镜像

  由于目前我们对于containerd并不熟悉,因此我们先直接通过dockerharbor中推入镜像,由于我们自己搭建的harbor是私有仓库,并且是HTTP的方式,因此我们需要配置docker的配置文件。

  你可以重新找一台机器安装docker做实验,或者直接使用harbor那台机器也可以,这里我直接使用harbor那台机器上的docker工具,向harbor推送镜像。

  配置修改如下,主要是增加了insecure-registries配置,如果你的配置文件中包含其它的配置,请不要直接执行,否则会覆盖你的配置。;另外,请一定要注意80端口,这个不能省略,否则docker会以https的方式访问harbor

tee /etc/docker/daemon.json << 'EOF'
{
    "registry-mirrors": [
        "http://hub-mirror.c.163.com",
        "https://mirror.baidubce.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://registry.docker-cn.com",
        "https://dockerproxy.com",
        "https://ccr.ccs.tencentyun.com",
        "https://registry.cn-hangzhou.aliyuncs.com"
    ],
    "insecure-registries": ["192.168.11.20:80"]
}
EOF

systemctl restart docker.service

  这里我随便推送harbor的一个镜像到我自己的harbor仓库当中,操作如下,第一步:重新打tag, 第二步:docker push这里需要注意的是,再推送镜像之前,一定要在登录harbor,提前建立仓库目录,否则推送会被拒绝,另外,静态的Tag所指向的仓库端口必须要显式指定80端口,否则默认使用443端口

root@harbor-http:~/harbor#
root@harbor-http:~/harbor#
root@harbor-http:~/harbor# cat /etc/docker/daemon.json
{
    "registry-mirrors": [
        "http://hub-mirror.c.163.com",
        "https://mirror.baidubce.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://registry.docker-cn.com",
        "https://dockerproxy.com",
        "https://ccr.ccs.tencentyun.com",
        "https://registry.cn-hangzhou.aliyuncs.com"
    ],
    "insecure-registries": ["192.168.11.20:80","192.168.11.30"]
}
root@harbor-http:~/harbor# docker images
REPOSITORY                    TAG       IMAGE ID       CREATED        SIZE
goharbor/redis-photon         v2.8.2    6f4498a430ca   7 weeks ago    121MB
goharbor/harbor-registryctl   v2.8.2    fa61a236a6d6   7 weeks ago    142MB
goharbor/registry-photon      v2.8.2    f80e71363231   7 weeks ago    79.3MB
goharbor/nginx-photon         v2.8.2    3d009028f260   7 weeks ago    120MB
goharbor/harbor-log           v2.8.2    2914d282d9bf   7 weeks ago    127MB
goharbor/harbor-jobservice    v2.8.2    40118f1568a8   7 weeks ago    141MB
goharbor/harbor-core          v2.8.2    0bbbd1f379fc   7 weeks ago    165MB
goharbor/harbor-portal        v2.8.2    3e74e0758aa4   7 weeks ago    127MB
goharbor/harbor-db            v2.8.2    5126635ae9f0   7 weeks ago    174MB
goharbor/prepare              v2.8.2    eb3cf3cdd17a   7 weeks ago    163MB
hello-world                   latest    9c7a54a9a43c   2 months ago   13.3kB
root@harbor-http:~/harbor#
root@harbor-http:~/harbor# docker tag goharbor/harbor-core:v2.8.2 192.168.11.20:80/goharbor/harbor-core:v2.8.2
root@harbor-http:~/harbor#
root@harbor-http:~/harbor# docker login -u admin -p harbor666 192.168.11.20:80
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
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
root@harbor-http:~/harbor#
root@harbor-http:~/harbor# docker push 192.168.11.20:80/goharbor/harbor-core:v2.8.2
The push refers to repository [192.168.11.20:80/goharbor/harbor-core]
c8ec2ddada08: Pushed
e1c4f1102d2f: Pushed
17583ba2a843: Pushed
0a049ad6bb06: Pushed
557ccce847e1: Pushed
9cb5dd968a55: Pushed
06d8a79a810a: Pushed
88edeb5b4944: Pushed
c00acf6f4f58: Pushed
21e7914e06fb: Pushed
v2.8.2: digest: sha256:654efa193924544a680f1cc7aaadb8d9fb4e1dcaa8c84a74c71b7fe861973838 size: 2411
root@harbor-http:~/harbor#
root@harbor-http:~/harbor# docker images
REPOSITORY                              TAG       IMAGE ID       CREATED        SIZE
goharbor/redis-photon                   v2.8.2    6f4498a430ca   7 weeks ago    121MB
goharbor/harbor-registryctl             v2.8.2    fa61a236a6d6   7 weeks ago    142MB
goharbor/registry-photon                v2.8.2    f80e71363231   7 weeks ago    79.3MB
goharbor/nginx-photon                   v2.8.2    3d009028f260   7 weeks ago    120MB
goharbor/harbor-log                     v2.8.2    2914d282d9bf   7 weeks ago    127MB
goharbor/harbor-jobservice              v2.8.2    40118f1568a8   7 weeks ago    141MB
192.168.11.20:80/goharbor/harbor-core   v2.8.2    0bbbd1f379fc   7 weeks ago    165MB
goharbor/harbor-core                    v2.8.2    0bbbd1f379fc   7 weeks ago    165MB
goharbor/harbor-portal                  v2.8.2    3e74e0758aa4   7 weeks ago    127MB
goharbor/harbor-db                      v2.8.2    5126635ae9f0   7 weeks ago    174MB
goharbor/prepare                        v2.8.2    eb3cf3cdd17a   7 weeks ago    163MB
hello-world                             latest    9c7a54a9a43c   2 months ago   13.3kB
root@harbor-http:~/harbor#

在这里插入图片描述
在这里插入图片描述

6. 配置containerd

mkdir -p /etc/containerd/certs.d/192.168.11.20:80
tee /etc/containerd/certs.d/192.168.11.20:80/hosts.toml << 'EOF'
server = "http://192.168.11.20:80"

[host."http://192.168.11.20:80"]
  capabilities = ["pull", "resolve", "push"]
  skip_verify = true
EOF

systemctl restart containerd.service

6.1. 拉取镜像验证

  执行:ctr image pull --plain-http=true -u admin:harbor666 192.168.11.20:80/goharbor/harbor-core:v2.8.2

root@containerd:~#
root@containerd:~# ctr image ls -q
docker.io/library/redis:alpine
root@containerd:~# cat /etc/containerd/certs.d/192.168.11.20\:80/hosts.toml
server = "http://192.168.11.20:80"

[host."http://192.168.11.20:80"]
  capabilities = ["pull", "resolve", "push"]
  skip_verify = true
root@containerd:~#
root@containerd:~#
root@containerd:~# ctr image pull --plain-http=true -u admin:harbor666  192.168.11.20:80/goharbor/harbor-core:v2.8.2
192.168.11.20:80/goharbor/harbor-core:v2.8.2:                                     resolved       |++++++++++++++++++++++++++++++++++++++|
manifest-sha256:654efa193924544a680f1cc7aaadb8d9fb4e1dcaa8c84a74c71b7fe861973838: done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:aea1be403dd1c4dce59794761f350e4706eb70771631535689e2b06a0a241001:    done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:548383ab94bf8b81b55cabf36298e0b14cca610a07a1ebd5bba013fa61ffab96:    done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:06212d50621c9654d97e7ec78e972b5017e139b11763375ee4c28bace1fcc087:    done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:cf14510ec51c323f283e583a5aabfa33337680e953b07d83162a6c5b5d72defc:    done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:b6c3d89688aed77dcbea624088f7613ac0923ca1f0398c42f0c79503a03baed6:    done           |++++++++++++++++++++++++++++++++++++++|
config-sha256:0bbbd1f379fc1f577c5db15c9deac4a218637e4af0196d97e6771f59d9815355:   done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:b3381433ebd4d04b664639ab510a6659fec0268dc222de8fb085da676f017cb4:    done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:b70a76c262e454573e9550cb64962b84a338d78d6f1db4ee9464cce0a8a47dcd:    done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:378fedafb8051764d80ec29260e7bf3101aabe84b72b23c5829deb2a445391a8:    done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:f9cd03857d3ab614d97d896de3496a66dffaf4cf5b2051cda730d028d6def94e:    done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:a3c670ddffbdf7be0c56baae8213258ee6cf339929c86b29905dd11808c80a34:    done           |++++++++++++++++++++++++++++++++++++++|
elapsed: 0.5 s                                                                    total:  47.1 M (94.2 MiB/s)
unpacking linux/amd64 sha256:654efa193924544a680f1cc7aaadb8d9fb4e1dcaa8c84a74c71b7fe861973838...
done: 1.256989921s
root@containerd:~#
root@containerd:~#
root@containerd:~# ctr image ls -q
192.168.11.20:80/goharbor/harbor-core:v2.8.2
docker.io/library/redis:alpine
root@containerd:~#

6.2. 推送镜像验证

  执行:ctr image push --plain-http=true -u admin:harbor666 192.168.11.20:80/goharbor/harbor-core:v2.8.3

root@containerd:~#
root@containerd:~# ctr image ls -q
192.168.11.20:80/goharbor/harbor-core:v2.8.2
docker.io/library/redis:alpine
root@containerd:~#
root@containerd:~# ctr image tag  192.168.11.20:80/goharbor/harbor-core:v2.8.2 192.168.11.20:80/goharbor/harbor-core:v2.8.3
192.168.11.20:80/goharbor/harbor-core:v2.8.3
root@containerd:~# ctr image ls -q
192.168.11.20:80/goharbor/harbor-core:v2.8.2
192.168.11.20:80/goharbor/harbor-core:v2.8.3
docker.io/library/redis:alpine
root@containerd:~#
root@containerd:~# ctr image push --plain-http=true -u admin:harbor666  192.168.11.20:80/goharbor/harbor-core:v2.8.3
manifest-sha256:654efa193924544a680f1cc7aaadb8d9fb4e1dcaa8c84a74c71b7fe861973838: done           |++++++++++++++++++++++++++++++++++++++|
config-sha256:0bbbd1f379fc1f577c5db15c9deac4a218637e4af0196d97e6771f59d9815355:   done           |++++++++++++++++++++++++++++++++++++++|
elapsed: 0.2 s                                                                    total:  7.7 Ki (38.4 KiB/s)
root@containerd:~#
root@containerd:~#

在这里插入图片描述

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

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

相关文章

防静电实时监控系统可以实现的功能

防静电实时监控系统是一种用于监测和识别静电相关问题的技术系统。静电是指由于电荷分布不均匀而引起的电势差&#xff0c;这可能导致电击、电磁干扰和设备故障等问题。 防静电实时监控系统可以通过以下方式实现&#xff1a; 感应传感器&#xff1a;该系统通常使用静电传感器…

flutter开发实战-自定义相机camera功能

flutter开发实战-自定义相机camera功能。 Flutter 本质上只是一个 UI 框架&#xff0c;运行在宿主平台之上&#xff0c;Flutter 本身是无法提供一些系统能力&#xff0c;比如使用蓝牙、相机、GPS等&#xff0c;因此要在 Flutter 中调用这些能力就必须和原生平台进行通信。 实现…

软件测试经典面试题——如何测试一支签字笔(尽量全面)

前几天过了两个电话面试&#xff0c;其中有一个问题&#xff1a;给你一支签字笔&#xff0c;你要如何测试它。 大白如我&#xff0c;后来才知道&#xff0c;这是一个软测的面试老题目了&#xff0c;当时稀里糊涂答了一通&#xff0c;后来才回味过来&#xff0c;其实HR是想看我的…

ROS2自定义消息并在同一功能包与其他功能包中使用

1创建自定义消息 1.1. 创建工作空间 mkdir -p ros2_ws/src1.2.创建功能包 cd ros2_ws/src ros2 pkg create msg_pkg --build-type ament_cmake --dependencies rclcpp std_msgs1.3.创建消息 在功能包msg_pkg中创建msg文件夹,并在msg目录中创建消息文件.类型.msg. 如Student…

【C++】从0到1讲继承|复杂的菱形继承

个人主页&#xff1a;&#x1f35d;在肯德基吃麻辣烫 我的gitee&#xff1a;gitee仓库 分享一句喜欢的话&#xff1a;热烈的火焰&#xff0c;冰封在最沉默的火山深处。 前言 本文主要讲述的是继承的概念&#xff0c;以及基类和派生类和衍生出的各种东西&#xff0c;还有多继承…

js实现css样式变换的实训

js实现css样式变换的实训 一、需求二、效果展示1.效果展示 三、实现四、其他1.其它系统 一、需求 完成以下功能&#xff1a; 1.掌控板三颗RGB灯初始所有RGB灯为红色 2.当掌控板P被触摸时&#xff0c;第一颗灯为白色&#xff0c;其他为红色&#xff1b;当掌控板Y被触摸时&…

C# GDI+编程之Graphics类

最近需要使用到C#DrawLine绘制直线这个功能&#xff0c;对这个了解的不多&#xff0c;记录一下使用的时候遇到的问题。 绘制线的基础部分&#xff0c;这个之前在《C#自学笔记&#xff08;四十&#xff09;之Windows绘图》就写过&#xff0c;有兴趣的可以看下 我这里主要说下Gra…

选择最佳安全文件传输方法的重要性

在数字化时代&#xff0c;文件的传输是商务、教育、科研、医学等领域不可或缺的工作流程。为了保障数据安全&#xff0c;选择最佳安全文件传输方法非常关键。在本文中&#xff0c;我们将探讨选择最佳安全文件传输方法的重要性。 第一、最佳安全文件传输方法可以保证文件内容不被…

【C++进阶】可变模版参数

一、前言 我们在之前Linux的学习中了解过命令行参数&#xff0c;可以让我们在命令行中传入多个参数&#xff0c;并且之前在学习printf&#xff0c;scanf等接口时&#xff0c;接触过可变模版参数&#xff1a; 而今天学习的可变参数模板和普通模板的语义是一样的&#xff0c;只…

Mac 系统钥匙串证书不受信任

Mac 系统钥匙串证书不受信任 解决办法 通过尝试安装 Apple PKI 的 Worldwide Developer Relations - G4 (Expiring 12/10/2030 00:00:00 UTC) 解决该异常问题 以上便是此次分享的全部内容&#xff0c;希望能对大家有所帮助!

[USACO14OPEN] Odometer S

洛谷[USACO14OPEN] Odometer S 题目大意 当一个数的每一位中有至少一半的数字相同&#xff0c;那么这个数就是一个有趣的数。求区间 [ L , R ] [L,R] [L,R]中有多少个有趣的数。 100 ≤ L ≤ R ≤ 1 0 18 100\leq L\leq R\leq 10^{18} 100≤L≤R≤1018 题解 这道题很容易能想…

AcWing242. 一个简单的整数问题

输入样例&#xff1a; 10 5 1 2 3 4 5 6 7 8 9 10 Q 4 Q 1 Q 2 C 1 6 3 Q 2输出样例&#xff1a; 4 1 2 5 #include<bits/stdc.h> using namespace std; const int N1e55; int n,m,a[N],c[N],x,y,d; char ch; int lowbit(int x){return x&-x; } void add(int x,int…

pytest--allure报告中添加用例详情

前言 前面介绍了如何生成allure的报告&#xff0c;看着allure的页面非常好看&#xff0c;但是感觉少了一些内容&#xff0c;allure还可以增加一些用例详情内容&#xff0c;这样让我们的报告看着更加绚丽。 allure增加用例详情 我们可以在报告测试套件中增加用例详情内容。 …

Spring初识(四)

文章目录 前言一.Bean的作用域1.1 作用域例子1.2 Bean的作用域类型 二.Bean的生命周期 前言 在前面我们学习了spring简单的读取和存储对象之后,Spring 中 Bean 是最核心的操作资源&#xff0c;我们接下来会介绍Bean对象. 一.Bean的作用域 什么是Bean作用域呢? 限定程序中变…

[DDPM] Denoising Diffusion Probabilistic Models

直接看paper云里雾里&#xff0c;一些推荐的讲解&#xff1a; The Annotated Diffusion Model 生成扩散模型漫谈&#xff08;一&#xff09;&#xff1a;DDPM 拆楼 建楼 生成扩散模型漫谈&#xff08;二&#xff09;&#xff1a;DDPM 自回归式VAE 生成扩散模型漫谈&#xff…

SQL-每日一题【619.只出现一次的最大数字】

题目 MyNumbers 表&#xff1a; 单一数字 是在 MyNumbers 表中只出现一次的数字。 请你编写一个 SQL 查询来报告最大的 单一数字 。如果不存在 单一数字 &#xff0c;查询需报告 null 。 查询结果如下例所示。 示例 1&#xff1a; 示例 2&#xff1a; 解题思路 1.题目要求我…

MyBatis---多表查询,动态sql的详细介绍

目录 1.命名规则 1.resultMap&#xff08;对应类属性名称与数据库字段名称&#xff09; 2.多表查询&#xff08;ResultMap&#xff09; 1.创建articleInfo类 2.创建ArticleMapper.xml配置文件和ArticleMapper接口 ①&#xff1a;不建议使用 &#xff08;文件之间耦合严重…

十大排序算法详解

目录 1. 冒泡排序 a. 思路 b. code 2. 插入排序 a. 思路 b. code 3. 希尔排序【插入排序plus】 a. 思路 b. code 4. 选择排序 a. 思路 b. code 5. 基数排序 a. 前置知识 b. 思路 c. code 6. 计数排序 a. 思路 b. code 7. 桶排序&#xff08;计数排序plus &…

怎么在shell中查看python版本以及降低anaconda的python版本

输入命令 python --version 电脑anaconda的python版本为3.11&#xff0c;如何降低版本 &#xff0c;输入命令 conda install python3.9 当安装完anaconda后&#xff0c;ubuntu系统的shell命令行最前面会出现base字样&#xff0c;此时要退出&#xff0c;就输入命令 conda deacti…

如何开启QQ邮件的SMTP服务以及如何使用Python发送邮件

如何开启QQ邮件的SMTP服务以及如何使用Python发送邮件 &#x1f607;博主简介&#xff1a;我是一名正在攻读研究生学位的人工智能专业学生&#xff0c;我可以为计算机、人工智能相关本科生和研究生提供排忧解惑的服务。如果您有任何问题或困惑&#xff0c;欢迎随时来交流哦&…