互联网技术 / 互联网资讯 · 2024年3月8日

可以像 Docker 一样方便的使用 Containerd 吗?

本文围绕在 contAIneRd 上使用命令行工具的便利性展开。为帮助更多开发者直接在本地进行开发、测试或单机部署,社区提供了与 Docker CLI 风格兼容的客户端工具 neRdctl,并且对 Docker Compose 语法也保持兼容,从而提升了将 contAIneRd 应用于本地工作流的效率。

安装

直接在 GitHub Release 页面下载对应的压缩包,解压后将可执行文件放入 PATH 即可使用。

示例流程:

1) 如果尚未安装 contAIneRd,可以下载 neRdctl-full–linux-AMD64.tar.gz 进行安装;

2) 也可使用下面的加速下载地址获取包,并解压至指定位置后建立软链接,确保 neRdctl 在系统 PATH 中可用:

 

# 下载并解压

# 下载并解压到指定目录后创建软链接

# 验证版本信息

安装完成后,可以通过 neRdctl version 命令查看客户端和服务端版本信息,例如:

client: v0.11.0,server: v1.5.5,其他字段按实际输出显示。

安装完成后,接下来学习 neRdctl 的基本用法。

Run 与 Exec

neRdctl Run 的行为类似于 dockeR Run,能够运行一个容器实例。示例用法类似如下:

➜ ~ neRdctl Run -d -p 80:80 –name Nginx –Restart=always Nginx:alpine

输出会显示镜像、分辨率、以及运行过程中的进度信息,包含镜像层级、配置摘要等字段。

可选参数与 Docker Run 基本一致,如 -i、-t、–CPUS、–Memory 等。运行时可以通过 neRdctl Run –help 查看全部可用选项:

示例帮助输出包含:–help、–tty/-t、–interactive/-i、–detach/-d、–Restart、–pull、–network、–DNS、–publish/-p、–hostname、–CPUS、–Memory、–pid、–pids-limit、–cgroups、–cpuset-cpus、–cpu-shares、–device、–user、–security-opt、–cap-add、–cap-drop、–privileged、–runtime、–sysctl、–gpus、–volume/-v、–Read-only、–Rootfs、–entrypoint、–workdir/-w、–env/-e、–env-file、–name、–label/-l、–label-file、–cidfile、–shm-size、等字段。

neRdctl exec

同样支持执行容器内部命令的功能,例如:

➜ ~ neRdctl exec -IT Nginx /Bin/sh -c “date”

可在容器内交互执行命令,方便实时调试。

ps:列出容器

neRdctl ps 可以列出所有容器信息,输出字段包括 CONTAINER ID、IMAGE、COMMAND、CREATED、STATUS、PORTS、NAMES 等等。默认只显示正在运行的容器;如需查看全部容器,可以使用 -a。需要注意的是 neRdctl ps 暂不实现 docking 版的 –filters、–format、–last、–size 等选项。

inspect:获取容器详细信息

neRdctl inspect 可以获取容器的详细信息,输出类似 JSON 对象的结构,包含 Id、Created、Image、Name、State、NetworkSettings 等字段,方便进一步处理或调试。

logs:查看容器日志

通过 neRdctl logs 可以实时跟踪容器日志,支持 -f、-t、-n、–since、–until 等选项,方便定位问题。

stop:停止容器

neRdctl stop 可以停止指定的容器,类似于 Docker 的停止命令,配合 ps 查看运行状态,管理生命周期变得直观。

总览

通过 neRdctl,可以获得接近 Docker 的使用体验,同时兼容 contAIneRd 的底层实现与镜像格式。显示结果与 inspect 的信息基本一致,帮助用户在迁移到 contAIneRd 时保持熟悉的操作习惯。