前文:
在不同的命名空间中,所做的操作是互相不可见、互不影响的。
以containerd为例,假设其中有三个命名空间:default、k8s.io、other。使客户端nerdctl访问default,使crictl访问k8s.io。nerdctl在default中所做的操作,crictl在k8s.io中无法见。k8s相当于如nerdctl一样的客户端。
如果想使nerdctl可见k8s.io的内容,就需将nerdctl加入命名空间k8s.io中。将k8s加入containerd的命名空间k8s.io中,k8s原有的命名空间就会对应到k8s.io中,相当于k8s.io的子目录。
nerdctl不能子命令补全,需编辑.bashrc
添加source <(nerdctl completion bash)
然后保存退出执行source .bashrc即可
一、镜像管理
查看镜像
docker images
crictl images
nerdctl images
拉取镜像
docker pull xxx
#(xxx镜像名)
nerdctl pull xxx
可在/etc/nerdctl/nerdctl.toml中修改nerdctl的命名空间
nerdctl在其他命名空间中显示镜像的格式不友好,可能会有错误。
搜索镜像
docker serach xxx
老版本的nerdctl中不支持搜索镜像,新版本未知。
镜像的命名方式:
仓库地址/分类/镜像名:tag
仓库地址如没写则默认为docker.io ,分类未写则默认为library,tag未写默认为latest
docker.io/library/nginx:latest
#完整镜像名
可使用完整镜像名拉取镜像
镜像打标签(重命名)
nerdctl tag 镜像名 重命名
#docker同上
两者只要有一个名字存在,则该文件存在,两者不存在依附关系。
删除镜像
docker rmi xxx
nerdctl rmi xxx
导出镜像
nerdctl save 镜像名 > 包名(镜像名.tar)
#docker同上
导入镜像
nerdctl load -i xxx.tar
#docker同上