首页 > 其他分享 >nerdctl+buildkitd构建容器镜像

nerdctl+buildkitd构建容器镜像

时间:2022-08-16 10:01:12浏览次数:124  
标签:harbor nerdctl buildkit 镜像 buildkitd net wyh

搭建nerdctl+buildkitd环境:   安装nerdctl:

wget https://github.com/containerd/nerdctl/releases/download/v0.22.0/nerdctl-0.22.0-linux-amd64.tar.gz
tar -zxvf nerdctl-0.22.0-linux-amd64.tar.gz
cp nerdctl /usr/local/bin/
安装cni:
wget https://github.com/containernetworking/plugins/releases/download/v1.1.1/cni-plugins-linux-amd64-v1.1.1.tgz
mkdir /opt/cni/bin -p
tar -zxvf cni-plugins-linux-amd64-v1.1.1.tgz -C /opt/cni/bin/
安装buildkitd:
wget https://github.com/moby/buildkit/releases/download/v0.10.3/buildkit-v0.10.3.linux-amd64.tar.gz
tar -zxvf buildkit-v0.10.3.linux-amd64.tar.gz
cp -a bin/buildkitd bin/buildctl /usr/local/bin/
生成Buildkitd的socket文件
cat <<EOF > /lib/systemd/system/buildkit.socket
[Unit]
Description=BuildKit
Documentation=https://github.com/moby/buildkit
 
[Socket]
ListenStream=%t/buildkit/buildkitd.sock
 
[Install]
WantedBy=sockets.target
EOF
生成buildkitd的service文件
cat <<EOF > /lib/systemd/system/buildkitd.service
[Unit]
Description=BuildKit
Requires=buildkit.socket
After=buildkit.socketDocumentation=https://github.com/moby/buildkit
 
[Service]
ExecStart=/usr/local/bin/buildkitd --oci-worker=false --containerd-worker=true
 
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl start buildkitd
systemctl enable buildkitd
  ######################################################################################################   containerd信任harbor自签名证书: #第一种方式:使用--insecure-registry
nerdctl login --resecure-registry harbor.wyh.net
#第二种方式:将证书拿到客户端,让客户端信任证书
mkdir /etc/containerd/certs.d/harbor.wyh.net -p
在harbor服务器将crt转换成cert
openssl x509 -inform PEM -in harbor.wyh.net.crt -out harbor.wyh.net.cert
将文件复制到客户端服务器的/etc/containerd/certs.d/harbor.wyh.net目录下
scp ca.crt harbor.wyh.net.cert harbor.wyh.net.key 192.168.213.11://etc/containerd/certs.d/harbor.wyh.net
测试是否可以登陆harbor
nerdctl login harbor.wyh.net
  !!!nerdctl有namespace概念,默认使用的namespace可以在/etc/nerdctl/nerdctl.toml指定!!!
cat <<EOF >/etc/nerdctl/nerdctl.toml
namespace = "k8s.io"
EOF
  !!!虽然信任证书后nerdctl可以正常拉取镜像和上传镜像到harbor,但是当制作镜像的源镜像是harbor上的镜像时会出现问题!!! 问题:此正式是未知的颁发机构签发的,所以不被信任 解决方法:
  • 使用正规机构颁发的证书(网上有免费申请的地方)
  • 在harbor前面部署nginx,nginx来挂证书,同时支持http和https
  将harbor改为http的方法: #关闭docker-compose
docker-compose stop
#修改其配置文件,注释掉https的配置
vim harbor.yml
更新配置
./prepare
启动
docker-compose up -d
服务启动成成功后harbor就可以使用http访问了: 启动成功后面临的问题:之前containerd配置的https访问,所以现在服务器上无法下载或者上传镜像: 解决方法:
  • 修改containerd的配置文件,改成http访问
  • 在harbor前面部署一个nginx,nginx配置https访问
对应修改buildkitd配置文件和nerdctl配置文件
mkdir /etc/{buildkit,nerdctl}
cat <<EOF >/etc/buildkit/buildkitd.toml
[registry."harbor.wyh.net"]
  http = true
  insecure = true
EOF
cat <<EOF >/etc/nerdctl/nerdctl.toml
namespace = "k8s.io"
debug = false
debug_full = false
insecure_registry = true
EOF
  分层构建镜像的思路图:                      

标签:harbor,nerdctl,buildkit,镜像,buildkitd,net,wyh
From: https://www.cnblogs.com/wyh-l6/p/16590586.html

相关文章

  • podman的基本设置和使用,签名分发镜像推送到harbor仓库
    podman的基本设置和使用目录podman的基本设置和使用podman的基本设置和使用运行示例容器列出正在运行的容器检查正在运行的容器测试httpd服务器查看容器日志查看容器的pid......
  • 常见docker命令(四)-本地镜像管理
    查看镜像dockerimagesdockerrmi-删除镜像删除mynginx最新镜像dockerrmi-fmynginx:latestdockertag-标记本地镜像,将其归入某个仓库开发一个新地mynginx版本,将其打标......
  • Docker自定义镜像Tomcat8
    一、创建目录mkdir/haolb/mydockerfile/tomcat8二、将jdk和tomcat安装的压缩包拷贝进上一步目录三、在/haolb/mydockerfile/tomcat8目录下新建Dockerfile文件FROMcentos:......
  • Springboot项目构建docker镜像发布到aliyun服务器
    一、1.先下载docker//1.先删除原本可能存在的dockeryumremove docker\         docker-client\         docker-client-late......
  • 怎样通过容器的存储ID找到对应的容器ID,镜像ID?
    问你一个问题:你有关注过容器的存储ID吗? 什么意思?让我们慢慢说······ 最近今天,集团在做主机安全的扫描,说我的某个主机上fastjson的版本太低了,要求整改。接......
  • (Docker)镜像的制作与部署方式
    基于Linux的虚拟化(Docker)镜像的制作与部署方式原创 曹兆祺 风乍起带你学编程 2022-08-1323:00 发表于天津收录于合集#docker5个#镜像1个#linux3个  ......
  • 三、docker镜像管理
    一、docker镜像管理1.1、镜像搜索-search从docker镜像仓库模糊搜索镜像用法: dockersearch镜像关键字[root@zutuanxue~]#dockersearchcentosNAMEDE......
  • fastboot烧镜像文件
    adbrebootbootloader--进入fastboot模式fastbootdevices--查看设备是否连上astboot命令:fastboo......