前言
ctr
是 Containerd 的命令行客户端工具,提供了与 Containerd 交互的多种命令。虽然它主要用于调试和开发环境,但它提供了丰富的功能,可以对容器、镜像、快照、任务等进行管理。以下是一些常用的 ctr
命令和它们的使用说明:
镜像管理
# 拉取镜像
ctr images pull docker.io/library/nginx:latest
# 列出镜像
ctr images list
# 导出镜像
## 语法
ctr images export <output-file>.tar <image-reference>
## 案例
ctr images export nginx.tar docker.io/library/nginx:latest
# 导入镜像
## 语法
ctr images import <input-file>.tar
## 案例
ctr images import nginx.tar
# 删除镜像
ctr images remove docker.io/library/nginx:latest
容器管理
# 创建容器
## 语法
ctr containers create <image-reference> <container-id>
## 案例
ctr containers create docker.io/library/nginx:latest my-nginx
# 列出容器
ctr containers list
# 删除容器
## 语法
ctr containers delete <container-id>
## 案例
ctr containers delete my-nginx
# 运行容器
## 语法
ctr run --rm --tty <image-reference> <container-id> <command>
## 案例
ctr run --rm --tty docker.io/library/nginx:latest test-nginx /bin/sh
ctr run 常用参数
-
--rm
:- 表示在容器停止后自动删除容器。
-
--tty
(-t
):- 分配一个伪终端,使得可以与容器的标准输入/输出进行交互。
-
--interactive
(-i
):- 允许用户保持标准输入流打开,以便可以与容器进行交互。
-
--runtime
:- 指定容器运行时类型(例如,
io.containerd.runc.v2
)。默认情况下,Containerd 使用runc
。
- 指定容器运行时类型(例如,
-
--net-host
:- 允许容器使用主机的网络栈。在这种模式下,容器和主机共享网络接口。
-
--privileged
:- 允许容器以特权模式运行,这使容器具有更高的权限,能够执行更多的系统级操作。
-
--env
:- 设置环境变量,格式为
key=value
,可以多次使用来设置多个环境变量。
- 设置环境变量,格式为
-
--volume
:- 挂载卷,格式为
host_path:container_path
,可以多次使用进行多个挂载。
- 挂载卷,格式为
-
--workdir
:- 指定容器的工作目录(与 Linux 的
cd
一样)。
- 指定容器的工作目录(与 Linux 的
-
--label
:- 为容器设置标签,格式为
key=value
,可以多次使用。
- 为容器设置标签,格式为
-
--detach
(-d
):- 在后台运行容器。
-
--gpus
:- 为容器分配 GPU 资源(如果主机支持 GPU)。