Harbor系列之6:制品的上传拉取

The `mirrors` property of `[plugins.“io.containerd.grpc.v1.cri“.registry]` is deprecated解决方案 以下这种配置在1.5版本就弃用了,预计在2.1版本彻底移除。 阅读详情

制品的上传拉取

Harbor 是一个开源的企业级制品(Artifact)管理仓库,用于存储和管理 Docker 镜像、Helm Charts、OCI 容器镜像、ChartMuseum 等制品。

1. docker或nerdctl作为客户端推送拉取容器镜像

以下记录docker推送拉取harbor仓库镜像的一般步骤,及一些可能用到的配置。nerdctl客户端基本兼容docker,操作过程类似,只需执行命令时将docker改为nerdctl即可。

操作步骤如下:

  1. 确认已经安装docker或者nerdctl

本文使用的Docker版本如下:

[root@k8s-node1 ~]# docker version
Client: Docker Engine - Community
 Version:           26.1.4
 API version:       1.45
 Go version:        go1.21.11
 Git commit:        5650f9b
 Built:             Wed Jun  5 11:32:04 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          26.1.4
  API version:      1.45 (minimum version 1.24)
  Go version:       go1.21.11
  Git commit:       de5c9cf
  Built:            Wed Jun  5 11:31:02 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.33
  GitCommit:        d2d58213f83a351ca8f528a95fbd145f5654e957
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
  1. 配置证书或非安全仓库信任

如果Harbor是https部署,需要给docker配置根证书:

# 生成Harbor根证书,k8s环境部署的Harbor执行如下如下命令生成。也可以在界面下载:Harbor管理界面-系统管理-配置管理-系统设置-镜像库根证书。
[root@k8s-master1 ~]# kubectl -n harbor get secrets harbor-ingress -o jsonpath="{.data.ca\.crt}" | base64 -d >ca.crt
# 创建证书存放目录,主要文件夹同Harbor的external url命名,如果是ip地址,同理建立192.168.1.1类似的文件夹
[root@k8s-master1 ~]# mkdir -p /etc/docker/certs.d/harbor.test.com
[root@k8s-master1 ~]# ls /etc/docker/certs.d/harbor.test.com/ca.crt
/etc/containerd/certs.d/harbor.test.com/ca.crt

如果Harbor是http部署,在 /etc/docker/daemon.json 文件中加入如下配置:

{
  "insecure-registries": [
    "harbor.test.com"
  ]
}

修改之后重启docker生效:

systemctl restart docker

说明:

知识配置证书部分不需要重启docker

  1. 登录镜像仓库
[root@k8s-master1 ~]# docker login harbor.test.com -uadmin -p Harbor12345
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
  1. 拉取镜像

执行以下命令可将仓库中的镜像拉取到本地。

docker pull Harbor_address/ProjectName/Repsitory[:Tag]

其中:

  • Harbor_address 表示 Harbor 镜像仓库地址。
  • ProjectName 表示项目名称。
  • Repsitory 表示镜像仓库名称。
  • Tag 表示镜像标签,通常表示镜像版本。

一般如果使用harbor作为镜像仓库,界面都会提供一键复制拉取镜像的命令。

此外除了Tag用于表示镜像版本之外,还可以用摘要(digest)进行镜像区分,以下两种方式的简单对比:

特性标签(Tag)摘要(Digest)
用途人类可读的标识符镜像内容的唯一标识符
格式镜像名称:标签 (如: nginx:latest)镜像名称@sha256:摘要值 (如: nginx@sha256:abcdef...)
可变性可变:可以重新分配给不同的镜像不可变:唯一对应特定的镜像内容
易读性高:易于识别和管理不同版本低:哈希值较长且难以阅读
用途开发和测试环境,可以使用latest标签来拉取最新的镜像。生产环境和严格控制镜像内容的场景,确保部署的镜像内容一致且不变。例如,CI/CD流水线中使用摘要来确保部署的镜像内容与测试时一致。
示例nginx:latest, nginx:1.21.3nginx@sha256:abcdef123456...

拉取命令一般可以到Harbor的项目-镜像仓库中,针对具体的镜像可以复制拉取命令:

docker pull harbor.test.com/server/nginx@sha256:4a50ed86d8c86e35f530d4a168173677a192177eed14146fbb5728b1b3a2d4de
  1. 推送镜像

执行以下命令在项目中标记镜像:

docker tag SourceImage[:Tag] Harbor_address/ProjectName/Repsitory[:Tag]

其中:SourceImage 表示本地的镜像。

执行以下命令将镜像上传到 Harbor 镜像仓库:

docker push Harbor_address/ProjectName/Repsitory[:Tag]

docker login登录Harbor后,执行推送:

[root@k8s-master1 ~]# docker push harbor.test.com/flannel/flannel-cni-plugin:v1.4.1-flannel1
The push refers to repository [harbor.test.com/flannel/flannel-cni-plugin]
756a157559aa: Layer already exists
8980900bae6f: Layer already exists
v1.4.1-flannel1: digest: sha256:ece4198ce10c4d4ba1a302fc4d66dc073598edae2b3e8e7ca8957fadf1f28b63 size: 738

2. ctr作为客户端推送拉取容器镜像

ctr是containerd运行时自带的客户端,部分环境中如果没有安装docker或者nerdctl客户端,可以选用ctr作为客户端进行镜像的上传下载。

本文使用的containerd版本如下:

[root@e2etest ~]# ctr -v
ctr containerd.io 1.6.33
[root@e2etest ~]# containerd -v
containerd containerd.io 1.6.33 d2d58213f83a351ca8f528a95fbd145f5654e957

2.1 配置证书

# 生成Harbor根证书,k8s环境部署的Harbor执行如下如下命令生成。也可以在界面下载:Harbor管理界面-系统管理-配置管理-系统设置-镜像库根证书。
[root@k8s-master1 ~]# kubectl -n harbor get secrets harbor-ingress -o jsonpath="{.data.ca\.crt}" | base64 -d >ca.crt
# 创建证书存放目录,主要文件夹同Harbor的external url命名,如果是ip地址,同理建立192.168.1.1类似的文件夹
[root@k8s-master1 ~]# mkdir -p /etc/containerd/certs.d/harbor.test.com/
[root@k8s-master1 ~]# ls /etc/containerd/certs.d/harbor.test.com/ca.crt
/etc/containerd/certs.d/harbor.test.com/ca.crt

备注

https部署的Harbor操作此步骤。根证书也可以从Harbor界面–系统管理–配置管理–系统设置–镜像库根证书位置进行下载。

2.2 修改配置文件

修改containerd配置文件,如果没有通过containerd config default > /etc/containerd/config.toml生成。

备注:

如果是docker单机环境,最新的docker会同时安装containerd,默认的配置文件config.toml内容较少,可以使用上面命令生成新的配置文件。

vim /etc/containerd/config.toml

在 /etc/containerd/config.toml 文件中对应位置加入如下的配置:

...
     [plugins."io.containerd.grpc.v1.cri".registry.configs]
         [plugins."io.containerd.grpc.v1.cri".registry.configs."harbor.test.com".tls]	# harbor.test.com为我的仓库地址
                        insecure_skip_verify = true		# 上述的证书为自签名证书,这里设置跳过证书不安全验证
                        ca_file = "/etc/containerd/certs.d/harbor.test.com/ca.crt" # 这一步应该和上一步作用类似,没有进一步验证。
         [plugins."io.containerd.grpc.v1.cri".registry.configs."harbor.test.com".auth]	# harbor的认证信息
                        username = "admin"
                        password = "Harbor12345"
    
     [plugins."io.containerd.grpc.v1.cri".registry.headers]

      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."harbor.test.com"]
                endpoint = ["https://harbor.test.com"]
...

配置之后需要重启 containerd:

systemctl restart containerd

containerd 2.0版本之前和之后的配置方式不同,本文使用的是2.0之前的版本。关于该部分的内容可以参考:https://github.com/containerd/containerd/blob/main/docs/cri/registry.md

2.3 ctr拉取推送镜像

正常来讲按照上述配置后,ctr可以正常推送拉取Harbor仓库的镜像。本文配置后,拉取推送还是报证书签名机构未知,最后加了--skip-verify才执行成功。

[root@e2etest ~]# ctr i pull harbor.test.com/perf/test-del:v1
WARN[0000] DEPRECATION: The `mirrors` property of `[plugins."io.containerd.grpc.v1.cri".registry]` is deprecated since containerd v1.5 and will be removed in containerd v2.0. Use `config_path` instead.
WARN[0000] DEPRECATION: The `configs` property of `[plugins."io.containerd.grpc.v1.cri".registry]` is deprecated since containerd v1.5 and will be removed in containerd v2.0. Use `config_path` instead.
INFO[0000] trying next host                              error="failed to do request: Head \"https://harbor.test.com/v2/perf/test-del/manifests/v1\": tls: failed to verify certificate: x509: certificate signed by unknown authority" host=harbor.test.com
ctr: failed to resolve reference "harbor.test.com/perf/test-del:v1": failed to do request: Head "https://harbor.test.com/v2/perf/test-del/manifests/v1": tls: failed to verify certificate: x509: certificate signed by unknown authority

[root@e2etest ~]# ctr i pull harbor.test.com/perf/test-del:v1 --skip-verify
WARN[0000] DEPRECATION: The `mirrors` property of `[plugins."io.containerd.grpc.v1.cri".registry]` is deprecated since containerd v1.5 and will be removed in containerd v2.0. Use `config_path` instead.
WARN[0000] DEPRECATION: The `configs` property of `[plugins."io.containerd.grpc.v1.cri".registry]` is deprecated since containerd v1.5 and will be removed in containerd v2.0. Use `config_path` instead.
harbor.test.com/perf/test-del:v1:                                          resolved       |++++++++++++++++++++++++++++++++++++++|
manifest-sha256:a7fad8c1072a21345b8757f34ac75f0d9aacb06f6daa41688c7a267f44fea24a: done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:d63decd1625fd2c540d723a81320df7d9f570f445c1a3ef976ca2675d154648e:    done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:47f50659768025a3e54da267f00011a8fa28a9e6a61c170f34b2e866367e3679:    done           |++++++++++++++++++++++++++++++++++++++|
config-sha256:184984d263c287122b19c49897027f6fa746f41abb0f1cec0611ed919e4041d5:   done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:2a715ab8d96eb980e74a015f299d9c14156ebfb94230c7355090d84a84043a29:    done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:8663a019712297de33c855c6322f652dda7d63ebc9c52d7025b64ef252277372:    done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:4e6c916f777cb68db9f51fb0b27783d0d945c4f2232fac1f0c5712267e53a0ee:    done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:51031a802bd2cceb2441df12a78d34e990bf345b361d83803da95869bdc3da16:    done           |++++++++++++++++++++++++++++++++++++++|
elapsed: 0.2 s                                                                    total:   0.0 B (0.0 B/s)
unpacking linux/amd64 sha256:a7fad8c1072a21345b8757f34ac75f0d9aacb06f6daa41688c7a267f44fea24a...
done: 9.012416ms


[root@e2etest ~]# ctr i push harbor.test.com/perf/test-del:v1 --skip-verify
WARN[0000] DEPRECATION: The `mirrors` property of `[plugins."io.containerd.grpc.v1.cri".registry]` is deprecated since containerd v1.5 and will be removed in containerd v2.0. Use `config_path` instead.
WARN[0000] DEPRECATION: The `configs` property of `[plugins."io.containerd.grpc.v1.cri".registry]` is deprecated since containerd v1.5 and will be removed in containerd v2.0. Use `config_path` instead.
manifest-sha256:a7fad8c1072a21345b8757f34ac75f0d9aacb06f6daa41688c7a267f44fea24a: done           |++++++++++++++++++++++++++++++++++++++|
config-sha256:184984d263c287122b19c49897027f6fa746f41abb0f1cec0611ed919e4041d5:   done           |++++++++++++++++++++++++++++++++++++++|
elapsed: 0.4 s                                                                    total:  5.6 Ki (14.0 KiB/s)

备注:

如果Harbor是http协议访问,配置文件中无需配置tls相关设置,ctr执行推送拉取时加flag--plain-http。

3. podman作为客户端推送拉取容器镜像

podman是更新的容器技术,大部分场景下都兼容docker,当docker做了上述配置后,podman即可直接从Harbor拉取或推送镜像。

[root@e2etest ~]# podman login  harbor.test.com
Authenticating with existing credentials...
Existing credentials are valid. Already logged in to harbor.test.com
[root@e2etest ~]# podman pull  harbor.test.com/perf/test-del:v1
[root@e2etest ~]# podman push  harbor.test.com/perf/test-del:v1

当然podman也有自己的仓库配置文件/etc/containers/registries.conf,如果是环境中只有podman,则需要单独配置。这里就不细展开了,可以查看podman相关文章。

4. Helm Charts的拉取推送

Charts的推送依赖于helm,本文使用的helm版本如下:

[root@e2etest ~]# helm version
version.BuildInfo{Version:"v3.12.0", GitCommit:"c9f554d75773799f72ceef38c51210f1842a1dea", GitTreeState:"clean", GoVersion:"go1.20.3"}

4.1 上传 Helm Chart 到 Harbor

使用 helm push 插件将 Helm Chart 上传到 Harbor 中的 ChartMuseum:

# 登录helm仓库,如果没有配置tls证书加--insecure
root@master1:~/harbor# helm registry login harbor.test.com --insecure
Username: admin
Password:
Login Succeeded

# 提前在harbor中创建harbor项目。上传不再支持UI界面,必须使用helm push。需要提前在harbor中创建名为harbor的project
root@master1:~/harbor# helm push harbor-1.15.0.tgz oci://harbor.test.com/harbor
Error: failed to do request: Head "https://harbor.test.com/v2/harbor/harbor/blobs/sha256:c51d391fc1d26224da59d97cc0428ecc9be64c9ca5ba9381f4e48f696bf41dc5": tls: failed to verify certificate: x509: certificate signed by unknown authority

# 添加--insecure-skip-tls-verify跳过tls证书验证。
root@master1:~/harbor# helm push harbor-1.15.0.tgz oci://harbor.test.com/harbor --insecure-skip-tls-verify
Pushed: harbor.test.com/harbor/harbor:1.15.0
Digest: sha256:2bb53e13ae59d5478ca90734b2c267096a1919a9a63875e583b87efff76a4532

4.2 从 Harbor 拉取 Helm Chart

使用 helm fetch 命令从 Harbor 中的 ChartMuseum 拉取 Helm Chart:

helm fetch harbor.example.com/chartrepo/mychart
# 下载命令web界面可以复制
helm pull oci://harbor.test.com/harbor/harbor --version 1.15.0

4.3 问题记录

  1. 如果Harbor为http部署,helm无法登录Harbor仓库
root@e2etest harbor]# helm registry login -u admin 10.210.10.210
Password:
INFO[0003] Error logging in to endpoint, trying next endpoint  error="Get \"https://10.210.10.210/v2/\": dial tcp 10.210.10.210:443: connect: connection refused"
Error: Get "https://10.210.10.210/v2/": dial tcp 10.210.10.210:443: connect: connection refused

问题遗留,后续跟踪。

在Containerd环境中镜像管理 containerd相比于docker,多了namespace概念,每个image和containe都会在各自的namespace下可见。可以使用 ctr 或 crictl 命令来导入镜像,这与 docker load -i 命令类似。-n=k8s.io:指定命名空间为 k8s.io,这是 Kubernetes 使用的默认命名空间。Kubernetes 下使用的 containerd 默认命名空间是 k8s.io。redis.tar:要导入的镜像文件。import:导入镜像命令。# 验证镜像是否已导入。 阅读详情

相关推荐

docker harbor的安装使用以及镜像上传和拉取

harbor的安装使用、镜像上传和拉取

生夏夏的博客 5084

新版本Kubernetes 容器 Containerd 保姆级中文教程

在学习 Containerd 之前我们有必要对 Docker 的发展历史做一个简单的回顾,因为这里面牵涉到的组件实战是有点多,有很多我们会经常听到,但是不清楚这些组件到底是干什么用的,比如libcontainer、runc、containerd、CRI、OCI等等。 Docker 从 Docker 1.11 版本开始,Docker 容器运行就不是简单通过 Docker Daemon 来启动了,而是通过集成 containerd、runc 等多个组件来完成的。虽然 Docker Daemon...

sinat_41542983的博客 3489

Harbor私有镜像仓库的搭建与镜像上传拉取操作

使用独立主机部署harbor使用docker compose 完成harbor部署后期使用harbor 中的镜像来部署应用。

qq_42853133的博客 1772

containerd中文翻译系列(十九)cri插件

云原生大火之下,仍没有发现containerd的中文文档,所以开始动手翻译一下。欢迎不吝指正。此为第九篇,主要介绍cri插件的架构、基本配置、镜像解密、镜像注册配置、测试指南及crictl工具的使用

2957

Containerd对接Harbor拉取与上传镜像

Containerd对接Harbor拉取与上传镜像

m0_47116305的博客 6544

k8s——pod详解+harbor镜像拉取(凭据)

k8s——pod详解+harbor镜像拉取(凭据)Pod基础概念在k8s集群中pod的使用方式Pod容器的分类pod中的3种容器底层基础容器pause初始化容器(initcontainers)1)概念2)Init的容器作用应用容器(Maincontainer)实例创建镜像拉取策略(image PullPolicy)概念创建测试案例pod的重启策略三种策略实例创建部署harbor创建私有项目(凭据令牌)环境准备安装docker上传docker-compose和harbor软件包部署Harbor服务在 Harb

Yusheng9527的博客 4835

Harbor的镜像上传和拉取

Harbor的镜像上传和拉取

足迹人生的博客 1万+

k8s 搭建Harbor私有仓库验证拉取镜像

搭建Harbor环境准备安装harbor验证访问新建项目上传镜像下载镜像master上拉取镜像 环境准备 搭建Harbor之前已经搭建了k8s集群环境,Harbor服务器上已经安装了docker、docker-compose,并已启动docker k8s集群master01:192.168.245.211 k8s集群master02:192.168.245.206 k8s集群node01:192.168.245.209 k8s集群node02:192.168.245.210 harbor服务器:192.

shengjie87的博客 2473

Harbor系列之11:制品签名

制品签名和签名验证是关键的安全功能,它们允许你验证制品的完整性。Harbor 通过与 Cosign 或 Notation 的集成来支持内容信任。项目管理员可以配置项目以强制执行内容信任,要求所有制品在从 Harbor 注册表中拉取之前必须进行签名。

lldhsds的专栏 1753

docker拉取harbor镜像并运行(win10版本)

安装docker 以下操作首先保证你的windows是专业版的 首先需要开启Hyper-V 选择程序和功能 点击启动或关闭windows功能 选中Hyper-V 确定后重启即可 下载docker 下载链接: 请点这里. 下载好后 一路next 安好后重启电脑 右击鲸鱼 点击setting 将如下代码覆盖如上图 (此步为设置镜像库) { "registry-mirrors": [], "insecure-registries": [ "10.11.24.188" ],

chuang777的博客 4705

2D激光slam四种算法建图效果对比

2d激光slam四种算法建图比较

m0_73791170的博客 8449

k8s与harbor联合使用【k8s拉取harbor中镜像】

前提:已经搭建K8s集群、harbor服务,且已经在机器上配置可以从harbor中拉取上传镜像。 概要:要想k8s从harbor中拉取镜像,需要有harbor的用户、密码、服务器信息,然后在k8s指定namespace中创建docker-registry类型。 创建docker-registry,有两种方式,命令行和YAML 第一种方式:命令行 kubectl create sec...

Happywzy~的博客 8160

ICM42670 IIC驱动与卡尔曼+四元数姿态解算实战

惯性测量单元(IMU)是运动控制、无人机飞控和AR/VR设备的核心传感器,其数据质量直接取决于底层硬件通信可靠性与姿态估计算法鲁棒性。IIC(I²C)作为嵌入式系统中最常用的低速串行总线,需满足确定性时序、抗干扰与实时采样要求;卡尔曼滤波则通过状态建模与噪声协方差优化,在动态环境中融合加速度计与陀螺仪数据;而四元数因其无万向锁、插值平滑、旋转合成高效等优势,成为高精度姿态解算的数学基础。本文以高性能六轴IMU ICM42670为载体,深入剖析IIC硬件设计要点、裸机级驱动优化、Allan方差驱动的卡尔曼参数

weixin_27076351的博客 255

部署Harbor服务,推送和拉取Docker镜像

部署Harbor服务,推送和拉取Docker镜像一、安装Harbor1、软件下载2、先将压缩包传到linux系统中3、使用命令将压缩包解压4、进入解压后的harbor目录下,修改harbor.yml5、修改完之后,启动harbor目录下的install.sh脚本,执行安装程序,程序会自动完成安装过程5、接着就可以浏览器访问harbor首页了二、测试向Harbor服务器推送和拉取docker镜像1、先在`Harbor`服务器上新建一个测试项目2、在`daemon.json`中加入`Harbor`地址3、准备一

糖果墙的博客 2328

从0到1:提示工程架构师搭建Agentic AI系统的全流程实战手册

Agentic AI(自主智能体)是具备自主决策能力的大模型应用感知(Perceive):获取外部环境信息(比如代码仓库、用户输入、数据库数据);记忆(Memory):存储和检索历史信息(比如过去的审计记录、用户偏好);规划(Plan):将复杂任务拆解为可执行的步骤(比如“代码审计”拆成3步);行动(Act):调用工具或API完成具体操作(比如调用Git克隆仓库、调用Safety查漏洞);反馈(Feedback):根据结果调整策略(比如用户说“报告不够详细”,下次增加逻辑漏洞的分析深度)。

AI Agent Harness Engineering 1042

奇迹MU单机版开服全流程:从零搭建到分辨率调整(附GM工具使用技巧)

本文详细介绍了奇迹MU单机版从零搭建到分辨率调整的完整流程,包括环境配置、服务端启动、GM工具使用技巧等关键步骤。特别针对现代高分辨率显示器提供了优化方案,帮助玩家轻松搭建个性化游戏环境,重温经典MMORPG的独特魅力。

b3n4m5q6w7的博客 680

K8S 从Harbor当中拉取镜像 连接方法

本文介绍了将本地Docker镜像上传至Harbor仓库并在Kubernetes集群中使用的完整流程。首先通过containerd将镜像(如dnabert2)导入并添加Harbor标签,然后使用ctr命令推送至Harbor(需注意正确地址和--plain-http参数)。接着在K8S中创建镜像拉取凭证,并修改resource服务配置以使用Harbor镜像地址。关键步骤包括:验证网络连通性、处理HTTPS/HTTP协议问题、确保命名空间一致性,以及通过测试Pod验证镜像拉取功能。最终实现多节点共享Harbor镜

victory0431的博客 1405

STM32F103跑LVGL,用DMA加速刷屏,800*480大屏也能丝滑

本文详细介绍了如何在STM32F103芯片上通过DMA加速和内存优化,实现800*480大屏的LVGL流畅运行。通过FSMC+DMA硬件架构优化、双缓冲机制和LVGL参数调优,显著提升了界面刷新率和响应速度,适用于嵌入式GUI开发中的高性能需求场景。

weixin_30357231的博客 376

Kubernetes+Harbor实现本地镜像的拉取

Kubernetes+Harbor实现本地镜像的拉取 为了使用的镜像更加安全和快捷,我们想到可以通过搭建好的私有镜像仓库从中拉取镜像。所以此次试验在原有的Kubernetes集群之外还要在创建一个harbor私有镜像仓库。 实验步骤 1.搭建一个harbor私有仓库,因为在之前的博客中我已经详细的介绍过如何搭建一个harbor私有仓库所以这里不再做过多的赘述。 2.搭建好harbor之后,需要创建一个用于存放Kubernetes集群专用镜像的项目。并向其中上传几个镜像用于后续试验。 3.在node节点中

QwQNightmare的博客 2155

库存优化技术提升电商效率

第一部分:库存优化技术基础 第1章:库存优化的基本概念 库存优化是现代电商运营中至关重要的一个环节。简单来说,库存优化指的是通过一系列的策略和技术手段,使得库存管理更加高效、准确,从而降低运营成本,提高销售额。 1.1 库存优化的定义与重要性

AI天才研究院 1248

【PyGIS】ERA5降雨蒸散发数据预处理

ERA5-LAND降雨蒸散发数据预处理

```On Earth, Be Water, By Coding``` 3145

docker 使用harbor私服推送和拉取镜像

在实际开发中,常常会将harbor部署到公网,并配置好域名和https。在开发者机器上build好镜像之后,再push到公网的harbor上。最后项目上线时再到服务器上pull镜像。因为harbor在公网上所以咱们的服务也能访问的到。 接下来看看如何将自己打包好的镜像推送到harbor私服,然后在其它机器上拉取镜像 安装后的一些配置 首先需要创建一个用户 点击创建用户 image.png 输入用户名密码邮箱这些不用多说,注意这些信息在推送镜像的时候会用到,不要随便设一个! ...

1623

21、时间触发以太网:通信、诊断、故障隔离与参数化详解

本文详细解析了时间触发以太网(TTEthernet)的核心机制,包括团检测算法、诊断服务、故障隔离策略、配置服务以及协议参数化等内容。TTEthernet是一种专为超高可靠性系统设计的网络技术,广泛应用于航空航天、工业自动化和汽车电子等领域。文章还探讨了其未来发展趋势,如技术创新与生态建设,为开发者、企业和研究机构提供了应用与发展的方向。

efc12345678的博客 110

使用 Containerd 通过 HTTP 协议拉取 Harbor 私有镜像仓库的镜像

在 Kubernetes 1.24及以上版本环境中,docker不再被支持,主要使用Containerd 是常用的容器运行。默认情况下,Containerd 使用 HTTPS 协议与镜像仓库通信。然而,在某些场景下(如测试环境或内部网络),我们可能需要通过 HTTP 协议访问私有镜像仓库。本文将详细介绍如何安装Harbor及配置 Containerd 以支持 HTTP 协议,并拉取 Harbor 私有镜像仓库中的镜像。我之前有文章写了如何在线安装docker和下载harbor安装包使用https部署,参考:

凡心所向,素履以往,生如逆旅,一苇以航 2464

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

[Docker]Docker拉取,上传镜像到Harbor仓库

需求 因为项目的需求,需要制作一个基于tomcat的镜像.那么前提就是,需要有tomcat的基础镜像. 怎么做 我的思路跑偏了,本来以为是需要将tomcat下载下来,然后通过docker命令,让它成为镜像的.结果后来和老大一沟通,才发现自己的思路偏的不是一点儿半点儿 如果需要tomcat镜像,可以直接从Docker Hub仓库上面直接拉取就OK,拉取下来的本身就是一个镜像.一条命令即可: do...

自由而不独立,仍是奴隶。 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: Harbor系列之5:安装配置helm仓库
下一篇: harbor系列之7:镜像漏洞扫描
KongTY312
博客等级 码龄12年 2143粉丝 189原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KongTY312

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值