Containerd
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.yaml
version: "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 ファイルが使用できそうです。
参考サイト