镜像常用操作
1. 拉取镜像
ctr images pull docker.io/library/nginx:alpine
指定平台
--all-platforms:所有平台(amd64 、arm、386 、ppc64le 等),不加的话下载当前平台架构
--platform:指定linux/amd64平台
ctr images pull --all-platforms docker.io/library/nginx:alpine
ctr images pull --platform linux/amd64 docker.io/library/nginx:alpine
2. 查看镜像
查看镜像可以使用 i 简写或者image
-q 只打印镜像名称
bash
ctr images list
ctr i ls
ctr i ls -q
3. 检测镜像
查看其中的 STATUS,complete 表示镜像是完整可用的状态
bash
ctr images check
4. 挂载镜像
把已下载的容器镜像挂载至当前文件系统,是为了方便查看镜像中包含的内容
bash
ctr images mount docker.io/library/nginx:alpine /tmp
ls -lh /tmp
ctr images unmount /tmp
5. 导入导出镜像
导出
同时导出可以使用--platform导出其它平台的(例如arm)
--all-platforms为导出所有平台
bash
ctr image export --all-platforms mynginx.tar docker.io/library/nginx:alpine
导入
bash
ctr images import mynginx.tar
ctr images import --all-platforms mynginx.tar
导入可能会出现类似于 ctr: content digest sha256:xxxxxx not found 的错误,要解决这个办法需要 pull 所有平台镜像。
bash
ctr i pull --all-platforms docker.io/library/nginx:alpine
ctr i export --all-platforms mynginx.tar docker.io/library/nginx:alpine
ctr i rm docker.io/library/nginx:alpine
ctr i import mynginx.tar
6. 删除镜像
bash
ctr images rm docker.io/library/nginx:alpine
7. 给镜像打标签
bash
ctr images tag docker.io/library/nginx:alpine docker.io/bongmu/nginx:alpine
8. 推送镜像
bash
ctr images push docker.io/bongmu/nginx:alpine
ctr images push --user admin:xx docker.io/bongmu/nginx:alpine
命名空间常用操作
containerd相比于docker,多了namespace概念,每个image和containe都会在各自的namespace下可见
bash
ctr namespace -h
NAME:
ctr namespaces - Manage namespaces
USAGE:
ctr namespaces command [command options] [arguments...]
COMMANDS:
create, c Create a new namespace
list, ls List namespaces
remove, rm Remove one or more namespaces
label Set and clear labels for a namespace
OPTIONS:
--help, -h show help
1. 查看命名空间
bash
ctr namespaces ls
2. 创建一个名空间
bash
ctr namespaces create test
3. 删除命空间
bash
ctr namespaces rm test
ctr -n test images pull --all-platforms docker.io/library/nginx:alpine
4. 查看命空间的镜像
bash
ctr images ls
ctr -n test images ls