Containerd对接harbor(设置 Containerd 容器的 insecure-registries)

文章讲述了如何配置containerd,包括生成默认配置、修改harbor登录和push镜像时遇到的问题,如--insecure-registry、RequestEntityTooLarge和权限错误,以及对应的解决方法。最后提到containerd的特定bugcannotreusebody,requestmustberetried。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.步骤

containerd不像docker,在/etc/docker/deamon.json文件配置一下insecure-registries就可以使用了,它的配置文件较复杂。

默认配置文件可以通过命令生成

containerd config default > /etc/containerd/config.toml
注意生成前,看目录中配置文件是否已存在,不然会覆盖掉原有的配置。

修改配置文件:

vi /etc/containerd/config.toml

重启containerd

systemctl restart containerd

登录harbor

nerdctl login https://harbor.wghdr.top


2.坑

harbor无法登录

这里报错是因为没有加–insecure-registry参数。

nerdctl命令是管理docker容器和本地的kubernetes pod的命令。使用nerdctl可以管理容器和镜像,支持将Docker Image Manifest镜像转换为OCI镜像、estargz镜像。同时,nerdctl还支持OCIcrypt和docker-compose等功能。
nerdctl login  -u xxx--insecure-registry https://harbor.wghdr.top

登录成功。

nerdctl push报错:Request Entity Too Large

这里报错是因为ingress-nginx的配置文件中client_max_body_size参数过小。

修改参数:

client_body_timeout             120s;
client_header_timeout           120s;
client_max_body_size                    500m;

location /configuration 中的client_max_body_size 21m不用改

替换配置文件,重启nginx。

k cp nginx.conf ingress-nginx-ingress-controller-557b9f5d7-9qfzc:/etc/nginx/nginx.conf -n ingress
k exec -it ingress-nginx-ingress-controller-557b9f5d7-9qfzc -n ingress -- bash
nginx -t
nginx -s reload

nerdctl push报错401

参考这篇博客:https://www.cnblogs.com/chenminklutz/p/13446164.html

注释 proxy_set_header X-Forwarded-Proto $pass_access_scheme;;

ctr push 报错:ctr: content digest sha256:xxxxxx not found

解决:

下载完整的镜像

ctr image pull --all-platforms docker.io/library/redis:alpine
ctr images tag docker.io/library/redis:alpine harbor.wghdr.top/harbor/redis:alpine
ctr images push -k harbor.wghdr.top/harbor/redis:alpine
123

nerdctl/ctr push 报错:cannot reuse body, request must be retried(暂未解决)

GitHub上有一个issue,说是containerd的bug。

"cannot reuse body, request must be retried" on `ctr images push` · Issue #5978 · containerd/containerd · GitHub

我的containerd版本是1.4.3,nerdctl版本是v0.16.0

这是harbor-core的日志

如果有大佬知道解决方法,请告知一下,感谢🙏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值