侧边栏壁纸
博主头像
小续的成长时光 博主等级

行动起来,活在当下

  • 累计撰写 21 篇文章
  • 累计创建 14 个标签
  • 累计收到 3 条评论

目 录CONTENT

文章目录

containerd命令行使用

小续
2024-04-07 / 0 评论 / 2 点赞 / 59 阅读 / 0 字 / 正在检测是否收录...

containerd命令行使用

一、基础使用

1、crictl、ctr用法

# 备注:k8s_1.25.0.tar.gz这个文件如何来的?
这个文件把安装k8s需要的镜像都集成好了,这个是我第一次安装1.25.0这个版本,获取到对应的镜像,通过ctr images export 这个命令把镜像输出到k8s_1.25.0.tar.gz文件,如果大家安装其他版本,那就不需要实现解压镜像,可以默认从网络拉取镜像即可。
ctr是containerd自带的工具,有命名空间的概念,若是k8s相关的镜像,都默认在k8s.io这个命名空间,所以导入镜像时需要指定命令空间为k8s.io

# 使用ctr命令指定命名空间导入镜像
ctr -n=k8s.io images import k8s_1.25.0.tar.gz

# 查看镜像,可以看到可以查询到了
crictl images

# 注意-n不能放在命令最后面,下面几行查看的镜像是一样的  
ctr -n=k8s.io image ls  
ctr -n k8s.io image ls  
  
# crictl 没有-n参数,操作都在`k8s.io`命名空间下。  
crictl image ls  
crictl images  
# crictl image list = ctr -n=k8s.io image list  
# crictl image ls = ctr -n=k8s.io image ls  
# crictl images = ctr -n=k8s.io image list  
# crictl images = ctr -n=k8s.io image ls  
  
# 使用ctr命令指定命名空间导入镜像  
ctr -n=k8s.io image import dashboard.tar  
  
#查看镜像,可以看到可以查询到了  
crictl images  
命令 docker ctr(containerd) crictl(kubernetes)
查看运行的容器 docker ps ctr task ls/ctr container ls crictl ps
查看镜像 docker images ctr image ls crictl images
查看容器日志 docker logs crictl logs
查看容器数据信息 docker inspect ctr container info crictl inspect
查看容器资源 docker stats crictl stats
启动/关闭已有的容器 docker start/stop ctr task start/kill crictl start/stop
运行一个新的容器 docker run ctr run 无(最小单元为pod)
打标签 docker tag ctr image tag
创建一个新的容器 docker create ctr container create crictl create
导入镜像 docker load ctr image import
导出镜像 docker save ctr image export
删除容器 docker rm ctr container rm crictl rm
删除镜像 docker rmi ctr image rm crictl rmi
拉取镜像 docker pull ctr image pull ctictl pull
推送镜像 docker push ctr image push
登录或在容器内部执行命令 docker exec crictl exec
清空不用的容器 docker image prune crictl rmi --prune

2、nerdctl安装及使用

  • 安装
# 安装nerdctl
wget https://github.com/containerd/nerdctl/releases/download/v1.6.2/nerdctl-full-1.6.2-linux-amd64.tar.gz
mv nerdctl-full-1.6.2-linux-amd64.tar.gz /usr/local/
cd /usr/local/
tar zxvf nerdctl-full-1.6.2-linux-amd64.tar.gz 

# 安装 buildkit 工具(配置这个之后才能使用 `nerdctl build`)
# 配置 systemd 管理
cat > /etc/systemd/system/buildkit.socket <<'EOF'
[Unit]
Description=BuildKit
Documentation=https://github.com/moby/buildkit
 
[Socket]
ListenStream=%t/buildkit/buildkitd.sock
 
[Install]
WantedBy=sockets.target
EOF
 
cat > /etc/systemd/system/buildkit.service <<'EOF'
[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 enable --now buildkit && systemctl status buildkit
  • 配置
# 设置默认名称空间
[root@master1 ~]# mkdir /etc/nerdctl
[root@master1 ~]# cat > /etc/nerdctl/nerdctl.toml << EOF
namespace = "k8s.io"
EOF
  • 使用
# 登入
nerdctl --insecure-registry login --username "admin" --password Harbor12345 harbor.lab.home:443  
  
# 登出  
nerdctl logout 

# 推送到Harbor   
nerdctl --insecure-registry --namespace=k8s.io push myharbor-minio.com/bigdata/nginx:nerctl  
     --insecure-registry  跳过https证书检查

ctr --namespace=k8s.io images push myharbor-minio.com/bigdata/nginx:nerctl --skip-verify --user admin:Harbor12345
2

评论区