我嘗試使用了 containerd + nerdctl

產品開發

以下是您提供的內容的繁體中文翻譯:

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:

bash
$ sudo apt-get update $ sudo apt-get install -y containerd.io 

RHEL9:

bash
$ sudo dnf install -y containerd.io 

接下來,我們將使用 nerdctl CLI。有關其使用方式,可以在 nerdctl 存儲庫的 docs 目錄中找到。

請注意,至少需要 Linux 核心版本 5.4。我們還需要進行一些其他設置。在這個示例中,我們將使用 Ubuntu 20.04 和 RHEL 9 進行演示。RHEL 8 可能無法正常運行。

首先,下載並解壓縮 nerdctl。

bash
$ 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 模式進行設置。如果操作系統不符合要求,您可能會看到錯誤消息。在這種情況下,請進行相應的處理。

bash
$ containerd-rootless-setuptool.sh install 

如果出現類似以下錯誤:

plaintext
[ERROR] RootlessKit failed, see the error messages and https://rootlesscontaine.rs/getting-started/common/. 

Ubuntu 可能需要安裝 uidmap 套件:

bash
$ sudo apt-get install uidmap 

在 RHEL9 中,可以使用以下方式確認是否安裝了 shadow-utils 套件:

bash
$ sudo dnf provides newuidmap 

然後重新執行安裝:

bash
$ containerd-rootless-setuptool.sh install 

繼續安裝 nerdctl 需要的元件,我們需要 CNI 插件:

bash
$ 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

python Copy code
 完成設置後,我們可以使用 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 工具。您可以按照下面的步驟進行設置:

bash Copy code
$ 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 進行映像建立:

bash Copy code
$ nerdctl build -t foo cont-img/ ... 

最後,如果您想在 Docker Hub 上分享映像,您可以繼續進行相關的操作。

以上就是 containerd + nerdctl 環境的設置步驟。如果您有需要,您可以參考相關資訊並進一步設置。

請注意,這僅是翻譯,我無法執行命令或設置實際環境。如果您想要進一步的幫助,可以參考原始文檔或相關資源。

在Docker和MicroK8s中嘗試使用多實例GPU(Multi-Instance GPU)
在Docker和MicroK8s中嘗試使用多實例GPU(Multi-Instance GPU)
從 GT-ONE 到 Dshot 更新的賽車方向盤支架到 PS5
從 GT-ONE 到 Dshot 更新的賽車方向盤支架到 PS5