產品開發
以下是您提供的內容的繁體中文翻譯:
containerd 是 Kubernetes 支援的一種容器執行環境。 在 containerd 中有一個名為 ctr 的 CLI 介面,可以使用它來執行容器和拉取映像,但它的指令操作與 Docker 不相容。
然而,使用 nerdctl 可以在幾乎與 Docker 相同的方式運行容器,實際上,如果將運行時轉換為 containerd,您可以使用 nerdctl 進行相同的容器操作。所以,如果您想快速嘗試一下,請安裝 Rancher Desktop,將運行時切換到 containerd,然後使用 nerdctl 來操作容器。
rancherdesktop.io
現在,讓我們來設置 containerd + nerdctl 環境。
安裝流程 環境需求 假設您已經安裝了作業系統,我們將在這之上進行設置。請注意,如果 Linux 核心版本太舊,可能無法正常運行,至少需要 Linux 核心版本 5.4 或更高。例如,Ubuntu 20.04 或更高,或者 RHEL 9 或更高。
額外提示,對於像 RHEL 等作業系統,可能需要停用防火牆,例如執行以下命令:systemctl disable firewalld && systemctl stop firewalld。這可能是未來需要解決的問題。
安裝 containerd + nerdctl 首先,我們將安裝 containerd。Docker Engine 的軟體包存儲庫中有 containerd.io 軟體包,請安裝它。
Ubuntu:
$ sudo apt-get update $ sudo apt-get install -y containerd.io
RHEL9:
$ sudo dnf install -y containerd.io
接下來,我們將使用 nerdctl CLI。有關其使用方式,可以在 nerdctl 存儲庫的 docs 目錄中找到。
請注意,至少需要 Linux 核心版本 5.4。我們還需要進行一些其他設置。在這個示例中,我們將使用 Ubuntu 20.04 和 RHEL 9 進行演示。RHEL 8 可能無法正常運行。
首先,下載並解壓縮 nerdctl。
$ wget "https://github.com/containerd/nerdctl/releases/download/v1.4.0/nerdctl-1.4.0-linux-amd64.tar.gz" $ tar zvxf nerdctl-1.4.0-linux-amd64.tar.gz $ mv containerd-rootless-setuptool.sh containerd-rootless.sh nerdctl ~/.local/bin
我們將選擇使用 rootless 模式進行設置。如果操作系統不符合要求,您可能會看到錯誤消息。在這種情況下,請進行相應的處理。
$ containerd-rootless-setuptool.sh install
如果出現類似以下錯誤:
[ERROR] RootlessKit failed, see the error messages and https://rootlesscontaine.rs/getting-started/common/.
Ubuntu 可能需要安裝 uidmap 套件:
$ sudo apt-get install uidmap
在 RHEL9 中,可以使用以下方式確認是否安裝了 shadow-utils 套件:
$ sudo dnf provides newuidmap
然後重新執行安裝:
$ containerd-rootless-setuptool.sh install
繼續安裝 nerdctl 需要的元件,我們需要 CNI 插件:
$ sudo mkdir -p /opt/cni/bin/ $ wget "https://github.com/containernetworking/plugins/releases/download/v1.3.0/cni-plugins-linux-amd64-v1
.3.0.tgz" $ cd /opt/cni/bin/ $ sudo tar zvxf ~/temp/cni-plugins-linux-amd64-v1.3.0.tgz
完成設置後,我們可以使用 nerdctl 來執行容器。例如: ```bash $ nerdctl run docker.io/hello-world
Hello from Docker! This message shows that your installation appears to be working correctly. 您還可以使用 nerdctl 進行容器映像的建立。這個過程與使用 Docker 相似。首先,如果您希望進行映像建立,需要準備 buildkit 工具。您可以按照下面的步驟進行設置:
$ wget "https://github.com/moby/buildkit/releases/download/v0.12.0/buildkit-v0.12.0.linux-amd64.tar.gz" $ tar zvxf buildkit-v0.12.0.linux-amd64.tar.gz $ mv bin/* ~/.local/bin $ CONTAINERD_NAMESPACE=default containerd-rootless-setuptool.sh install-buildkit-containerd
接下來,您就可以根據需要建立 Dockerfile 並使用 nerdctl 進行映像建立:
$ nerdctl build -t foo cont-img/ ...
最後,如果您想在 Docker Hub 上分享映像,您可以繼續進行相關的操作。
以上就是 containerd + nerdctl 環境的設置步驟。如果您有需要,您可以參考相關資訊並進一步設置。
請注意,這僅是翻譯,我無法執行命令或設置實際環境。如果您想要進一步的幫助,可以參考原始文檔或相關資源。