May 2025
Intermediate to advanced
418 pages
5h 47m
Chinese
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
可用于与 Linux 容器交互的工具在不断发展,尤其是 Kubernetes 多年来得到了广泛采用。
在本章中,我们将快速浏览一些受 Docker 启发但通常专注于改进特定用例的工具。这并不是一份全面的清单,而只是为了让你了解一些可供探索的类别和选项。
在本节中,我们将介绍三种命令行工具:nerdctl、podman 和buildah 。对于熟悉 Docker 及其常见工作流程的人来说,所有这些工具可能都很有用。
虽然 crictl1在许多基于containerd- 的环境中默认安装了 ,但nerdctl 是一个易于使用的兼容 Docker 的 CLIcontainerd ,值得一试。这意味着nerdctl 可以为使用 Docker 但需要支持不运行 Docker 守护进程的containerd 系统的人员和脚本提供非常简单的迁移路径。
举个简单的例子,如果你用kind 启动一个小型 Kubernetes 集群(我们在"Kind"一文中讨论过),你最终会得到一个基于containerd 的 Kubernetes 集群,它与docker CLI 并不直接兼容:
$kindcreatecluster--namenerdctlCreating cluster "nerdctl" ……$dockercontainerexec-tinerdctl-control-plane/bin/bash
现在您应该在kind/Kubernetes 容器内了。
在接下来的curl 命令中,您必须确保为您的系统架构下载了正确的版本。您需要将${ARCH} 替换为amd64 或arm64 ,具体取决于您的系统。此外,请尝试下载 nerdctl 的最新版本。
编辑以下curl 命令并将其重新组合为一行后,就可以下载并解压nerdctl 客户端,然后尝试使用它执行一些命令:
root@nerdctl-control-plane:/#curl-s-L\"https://github.com/containerd/nerdctl/releases/download/v0.23.0/\nerdctl-0.23.0-linux-${ARCH}.tar.gz"-o/tmp/nerdctl.tar.gzroot@nerdctl-control-plane:/#tar-C/usr/local/bin-xzf/tmp/nerdctl.tar.gzroot@nerdctl-control-plane:/#nerdctlnamespacelistNAME CONTAINERS IMAGES VOLUMES LABELSk8s.io 18 24 0root@nerdctl-control-plane:/#nerdctl--namespacek8s.iocontainerlistCONTAINER ID IMAGE … NAMES07ae69902d11 registry.k8s.io/pause:3.7 … k8s://kube-system/core…0b241db0485f registry.k8s.io/coredns/coredns:v1.9.3 … k8s://kube-system/core……root@nerdctl-control-plane:/# ...
Read now
Unlock full access