飞道的博客

nerdctl容器管理工具

766人阅读  评论(0)

nerdctl简介

k8s1.22版本及以上强制安装containerd,要求卸载Docker.
虽然Docker能干的事Containerd都能干,但Containerd还有一个非常明显的缺陷:它的两个CLI工具ctrcrictl不够友好。
为了解决这个痛点,Containerd 官方推出了一个新的 CLI 叫 nerdctlnerdctl 的使用体验和 docker 一样顺滑.

https://mp.weixin.qq.com/s/Bjn0s5qRh2H9I__mAYh4jg
https://developer.aliyun.com/article/1094835

nerdctl 的目标并不是单纯地复制 docker 的功能,它还实现了很多 docker 不具备的功能,例如延迟拉取镜像(lazy-pulling)镜像加密(imgcrypt)等。


nerdctl的两个版本

如果你已经安装了Containerd,只需要选择基础版,否则就选择完整版

  • 基础版:nerdctl--linux-amd64.tar.gz : 只包含 nerdctl
  • 完整版:nerdctl-full--linux-amd64.tar.gz : 包含了 nerdctl 和相关依赖组件containerd, runc, CNI, …)。

安装nerdctl

前提条件已安装Containerd

# 查看Containerd服务
systemctl status containerd


nerdctlrelease: https://github.com/containerd/nerdctl/releases

# 下载nerdctl到指定/usr/local/src/
## -c 断点续传
## —P 下载到指定目录
wget -c -P /usr/local/src/ https://github.com/containerd/nerdctl/releases/download/v1.1.0/nerdctl-1.1.0-linux-amd64.tar.gz

# 创建nerdctl对应目录
mkdir -p /usr/local/containerd/bin

# 解压nerdctl到指定路径
tar -xvf nerdctl-1.1.0-linux-amd64.tar.gz -C /usr/local/containerd/bin/

# 创建软链接
ln -s /usr/local/containerd/bin/nerdctl /usr/bin/nerdctl

# 查看是否安装成功
which nerdctl

 


1.配置nerdctl自动补全

# 配置nerdctl自动补全
source <(nerdctl completion bash)
echo 'source <(nerdctl completion bash)' >>~/.bashrc


2.将nerdctl设别名为docker

nerdctldocker官方语法几乎完全一致;也可以使用aliasnerdctl设别名为docker.
但是使用别名docker无法自动补全
https://github.com/containerd/nerdctl/issues/1845

# nerdctl要加上-n=k8s.io才能读取到镜像
nerdctl -n=k8s.io images

# 设置alias别名为docker
echo "alias docker='nerdctl -n=k8s.io'" >>~/.bashrc

# 使别名立即生效
source .bashrc

# 使用docker命令(无法使用自动补全)
docker images


nerdctl使用方法

nerdctl用法参考:
https://mdnice.com/writing/c57c45c557bf46b0835958134892abc4

https://mp.weixin.qq.com/s/vs_XIn-cpEXtWoF8Yb9vRw


1、运行/计入容器

# 运行容器
nerdctl run

# 进入容器
nerdctl exec

2、容器管理

nerdctl ps #列出容器
nerdctl inspect #获取容器的详细信息。
nerdctl logs #获取容器日志
nerdctl stop #停止容器
nerdctl rm #删除容器

3、镜像管理

nerdctl images #镜像列表
nerdctl pull #拉取镜像
nerdctl push #推送镜像
nerdctl tag #镜像标签
nerdctl save #导出镜像
nerdctl rmi #删除镜像
nerdctl load #导入镜像

4、镜像构建

容器构建需要安装buildkit
https://blog.csdn.net/omaidb/article/details/128673207

nerdctl build #从 Dockerfile 构建镜像
# 构建镜像时不使用缓存(默认值:false)
nerdctl build --no-cache 

转载:https://blog.csdn.net/omaidb/article/details/128677718
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场