Skip to content

Containerd

Note

Docker ⇒ Containerd へ移行中のメモです。nerdctl コマンドを実行するユーザの権限を調査中です。

インストール

Containerd

  1. 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/
    
  2. 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

  1. 関連ツールのインストール

    sudo apt install -y rootlesskit
    
  2. 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
    
  3. 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
      
  4. 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
    
  5. 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
    
  6. 動作確認

    • 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 ファイルが使用できそうです。

参考サイト