nerdctl容器管理工具
- nerdctl简介
- nerdctl的两个版本
- 安装nerdctl
- 1.配置nerdctl自动补全
- 2.将`nerdctl`设别名为`docker`
- nerdctl使用方法
- 1、运行/计入容器
- 2、容器管理
- 3、镜像管理
- 4、镜像构建
nerdctl简介
k8s1.22
版本及以上
强制安装containerd
,要求卸载Docker
.
虽然Docker
能干的事Containerd
都能干,但Containerd
还有一个非常明显的缺陷:它的两个CLI工具ctr
和crictl
不够友好。
为了解决这个痛点,Containerd
官方推出了一个新的 CLI 叫 nerdctl
。nerdctl
的使用体验和 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
nerdctl
的release
: 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
nerdctl
和docker
官方语法几乎完全一致;也可以使用alias
将nerdctl
设别名为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