Hướng Dẫn Chi Tiết Các Lệnh Nerdctl

I. Giới Thiệu

Nerdctl là công cụ quản lý containerd tương thích với giao diện CLI của Docker, được thiết kế chủ yếu cho người dùng mới chuyển từ Docker sang containerd. So với các công cụ ctr và crictl mặc định của containerd, Nerdctl cung cấp trải nghiệm thân thiện hơn. Lưu ý rằng Nerdctl hoạt động trên containerd thay vì Docker, do đó kết quả từ `nerdctl images` sẽ khác so với `docker images`. Công cụ này duy trì cách dùng giống Docker nhưng thực chất điều khiển containerd. Đặc điểm nổi bật:
  • Giao diện và trải nghiệm tương tự Docker
  • Hỗ trợ docker-compose (ví dụ: nerdctl compose up)
  • Tùy chọn: Chế độ rootless không cần slirp (bypass4netns)
  • Tùy chọn: Hỗ trợ pull chậm (Stargz, Nydus, OverlayBD)
  • Tùy chọn: Hỗ trợ hình ảnh mã hóa (ocicrypt)
  • Tùy chọn: Phân phối hình ảnh P2P (IPFS)
  • Tùy chọn: Kiểm tra chữ ký và xác thực hình ảnh (cosign)
  • Tùy chọn: Xem không gian tên containerd, quản lý pod Kubernetes trực tiếp
  • Tùy chọn: Chuyển đổi manifest Docker thành OCI/estargz
Nerdctl là dự án phụ không thuộc vào containerd, tham khảo thêm tại https://github.com/containerd/nerdctl.

II. Cài Đặt

Có hai tùy chọn cài đặt: Minimal (chỉ có nerdctl) và Full (bao gồm các phụ thuộc như containerd, runc, CNI).

2.1 Cài đặt nerdctl

Tải về từ https://github.com/containerd/nerdctl/releases, ví dụ cài đặt phiên bản nhẹ:
# Tải file
wget https://github.com/containerd/nerdctl/releases/download/v2.0.4/nerdctl-v2.0.4-linux-amd64.tar.gz
# Tạo thư mục và giải nén
mkdir -p /opt/nerdctl/bin && tar -zxvf nerdctl-v2.0.4-linux-amd64.tar.gz nerdctl && mv nerdctl /opt/nerdctl/bin/
# Tạo đường dẫn mềm
ln -s /opt/nerdctl/bin/nerdctl /usr/local/bin/nerdctl

2.2 Cài đặt buildctl

Buildctl là thành phần cần thiết cho việc xây dựng hình ảnh:
# Tải về
wget https://github.com/moby/buildkit/releases/download/v0.13.0/buildkit-v0.13.0.linux-amd64.tar.gz
# Giải nén và tạo đường dẫn
mkdir -p /opt/buildkit && tar -zxvf buildkit-v0.13.0.linux-amd64.tar.gz -C /opt/buildkit
ln -s /opt/buildkit/bin/buildkitd /usr/local/bin/buildkitd
ln -s /opt/buildkit/bin/buildctl /usr/local/bin/buildctl

2.3 Các lệnh thường dùng

Danh sách lệnh chính:
  • nerdctl run: Tạo container mới
  • nerdctl exec: Chạy lệnh trong container đang chạy
  • nerdctl ps: Liệt kê container
  • nerdctl inspect: Xem thông tin chi tiết container
  • nerdctl logs: Xem log container
  • nerdctl stop: Dừng container
  • nerdctl rm: Xóa container
  • nerdctl images: Liệt kê hình ảnh
  • nerdctl build: Xây dựng hình ảnh từ Dockerfile

III. Cấu Hình Và Sử Dụng

3.1 Không gian tên (namespace)

Để xem hình ảnh liên quan đến Kubernetes, sử dụng tham số --namespace:
nerdctl images --namespace=k8s.io

3.2 Quản lý container

Ví dụ tạo container web server:
nerdctl run -d -p 8080:80 --name=mywebserver nginx:alpine

3.3 Quản lý hình ảnh

Các thao tác phổ biến:
  • nerdctl pull: Tải hình ảnh từ registry
  • nerdctl tag: Đánh dấu lại hình ảnh
  • nerdctl push: Gửi hình ảnh lên registry
  • nerdctl save: Lưu hình ảnh thành file .tar
  • nerdctl load: Tải hình ảnh từ file .tar

3.4 Xây dựng hình ảnh

Ví dụ tạo hình ảnh tùy chỉnh:
cat > mydockerfile <<EOF
FROM alpine:latest
RUN echo "Hello from Nerdctl" > /index.html
EOF
nerdctl build -t myapp:v1.0 -f mydockerfile .

IV. Cài đặt plugin (tùy chọn)

Ví dụ cài đặt plugin CNI:
wget https://github.com/containernetworking/plugins/releases/download/v1.2.0/cni-plugins-linux-amd64-v1.2.0.tgz
mkdir -p /usr/local/cni/bin
tar -xzvf cni-plugins-linux-amd64-v1.2.0.tgz -C /usr/local/cni/bin

Thẻ: containerd nerdctl Docker CLI CNI plugins container management

Đăng vào ngày 31 tháng 8 lúc 12:41