[!NOTE]
Docker ⇒ Containerd へ移行中のメモです。nerdctl コマンドを実行するユーザの権限を調査中です。
インストール
Containerd
-
Download containerd
wget https://github.com/containerd/containerd/releases/download/v1.7.7/containerd-1.7.7-linux-amd64.tar.gz sudo tar zxvf containerd-1.7.7-linux-amd64.tar.gz -C /usr/local/
-
Configure containerd
sudo wget \ https://raw.githubusercontent.com/containerd/containerd/main/containerd.service \ -O /etc/systemd/system/containerd.service sudo systemctl daemon-reload sudo systemctl start containerd sudo systemctl enable containerd
nerdctl
-
関連ツールのインストール
sudo apt install -y rootlesskit
-
nerdctl のインストール
wget https://github.com/containerd/nerdctl/releases/download/v1.6.2/nerdctl-1.6.2-linux-amd64.tar.gz sudo tar zxvf nerdctl-1.6.2-linux-amd64.tar.gz -C /usr/local/bin/ containerd-rootless-setuptool.sh install
-
BuildKit の有効化
-
BuildKit のインストール
wget https://github.com/moby/buildkit/releases/download/v0.12.3/buildkit-v0.12.3.linux-amd64.tar.gz sudo mkdir /usr/local/buildkit sudo tar zxvf buildkit-v0.12.3.linux-amd64.tar.gz -C /usr/local/buildkit echo "export PATH=$PATH:/usr/local/buildkit/bin" >> $HOME/.bashrc source $HOME/.bashrc
-
BuildKit の有効化
CONTAINERD_NAMESPACE=default containerd-rootless-setuptool.sh install-buildkit-containerd
-
-
ranc のインストール
sudo wget https://github.com/opencontainers/runc/releases/download/v1.1.9/runc.amd64 -O /usr/local/bin/runc sudo chmod +x /usr/local/bin/runc
-
CNI Plugin のインストール
wget https://github.com/containernetworking/plugins/releases/download/v1.3.0/cni-plugins-linux-amd64-v1.3.0.tgz sudo mkdir -p /opt/cni/bin sudo tar -zxvf cni-plugins-linux-amd64-v1.3.0.tgz -C /opt/cni/bin
-
動作確認
-
nerdctl コマンド
sudo nerdctl run -d -p 8080:80 --name nginx-test nginx
-
nerdctl compose コマンド
docker-compose.yamlversion: "3" services: nginx: image: nginx:latest restart: always ports: - "8080:80"
コンテナの起動sudo nerdctl compose up -d --build
ブラウザや curl コマンド等で
http://localhost:8080/
を参照すると nginx のデフォルト画面が参照できると思います。コマンドオプションを見る限りでは docker コマンド ⇒ nerdctl コマンドは、実行するコマンドを変更する程度で移行できそうです。
docker compose
コマンドについてもnerdctl compose
で同じ YAML ファイルが使用できそうです。 -