- vừa được xem lúc

Docker CLI, ctr và crictl

0 0 4

Người đăng: Peter Nguyen

Theo Viblo Asia

Kể từ version 1.24, Kubernetes không còn hỗ trợ Docker như là một container runtime (là thành phần chịu trách nhiệm quản lý và thực thi các container). Từ đây, nhiều bạn sẽ khá bối rối khi sử dụng các command như docker, ctr và crictl và cách phân biệt chúng. Cùng tìm hiểu nhé.

docker (ở đây chỉ nói đến Docker CLI) là một công cụ dòng lệnh để quản lý container thông qua Docker. Đây là công cụ ra đời sớm nhất và cũng có nhiều chức năng để quản lý container nhất.

ctrcontainerd là một công cụ quản lý container tối giản và tập trung vào chức năng cơ bản để quản lý container, do đó CTR – một công cụ để quản lý các container trực tiếp thông qua containerd, sẽ ít chức năng hơn docker.

crictl là một công cụ để quản lý vùng chứa thông qua Container Runtime Interface (CRI). CRI là một giao diện tiêu chuẩn cho phép Kubernetes giao tiếp với các container runtime khác nhau, chẳng hạn như containerd, CRI-O, … Đây là công cụ ít chức năng nhất so với docker cli và ctr. Nếu bạn sử dụng containerd làm container runtime cho Kubernetes thì crictl sẽ chỉ tương tác với namespace k8s.io của containerd. Do đó lệnh crictl sẽ tương đương.

crictl <...> = ctr -n k8s.io <...> 

Đây là bảng tóm tắt những khác biệt chính giữa docker, ctr và crictl

Tên docker CLI ctr crictl
Mục đích Quản lý container thông qua Docker Quản lý container trực tiếp qua containerd Quản lý container thông qua CRI của Kubernetes
Người sử dụng Người dùng cần quản lý trực tiếp container qua docker Người dùng cần quản lý trực tiếp container qua containerd Quản trị viên và nhà phát triển Kubernetes
Command List, inspect, run, stop, remove container, execute command vào container, pull, remove, update tag, import, build image List, inspect, run, stop, remove container, execute command vào container, pull, remove, update tag, import image List, inspect, run, stop, remove container, execute command vào container, pull, remove image
Namespace Không quản lý theo namespace Quản lý theo namespace Sẽ chỉ tương tác với namespace k8s.io của containerd

Đây là bảng so sánh những command giữa docker, ctr và crictl

Functions Docker CLI Containerd CLI Crictl CLI
Image List Quản lý containers thông qua Docker Quản lý container trực tiếp qua containerd Quản lý container thông qua CRI của Kubernetes
Image Export docker save -o app.tar app:1.2.0 ctr image export app.tar app:1.2.0
Image Import docker load -i app.tar ctr image import app.tar
Image Pull docker pull redis:latest ctr -n k8s.io images pull docker.io/library/redis:latest crictl pull redis:latest
Image Push docker push redis:latest ctr -n k8s.io images push docker.io/library/redis:latest crictl push redis:latest
Image Tag Update docker tag redis:latest repo-name/redis:latest ctr -n k8s.io images tag docker.io/library/redis:latest repo-name/redis:latest
Image Delete docker rmi redis:latest ctr -n k8s.io images rm docker.io/library/redis:latest crictl rmi redis:latest
Container Create docker create --name redis redis:latest ctr -n k8s.io container create docker.io/library/redis:latest redis
Container Create Run docker run -d --name app image-app:1.2.0 ctr -n k8s.io run -d image-app:1.2.0 app
Container List docker ps ctr -n k8s.io container list crictl ps
Container Start docker start app ctr -n k8s.io task start app crictl start
Container Pause docker pause app ctr -n k8s.io task pause app
Container Stop docker stop app ctr -n k8s.io task kill app crictl stop
Container Delete docker rm [-f] app ctr -n k8s.io container rm [-f] app crictl rm
Container Detail Inspect docker inspect app ctr -n k8s.io c info app crictl inspect app
Container Attach docker attach app ctr -n k8s.io task attach app crictl attach
Run cmd inside Container docker exec -it app sh ctr -n k8s.io task exec -t exec-id pid app sh crictl exec -it app sh
Container Status docker top app ctr -n k8s.io task metric app crictl stats
Container Log docker logs –tail 50 app ctr -n k8s.io event crictl logs
Copy files from Container docker cp
Build image docker build
Login to repository docker login

Bình luận

Bài viết tương tự

- vừa được xem lúc

Deploying A Containerized Web Application On Kubernetes

1. Overview. Kubernetes is an open source project (available on kubernetes.io) which can run on many different environments, from laptops to high-availability multi-node clusters; from public clouds to on-premise deployments; from virtual machines to bare metal.

0 0 28

- vừa được xem lúc

Kubernetes - Học cách sử dụng Kubernetes Namespace cơ bản

Namespace trong Kubernetes là gì. Tại sao nên sử dụng namespace.

0 0 96

- vừa được xem lúc

[Kubernetes] Kubectl và các command cơ bản

Mở đầu. Kubectl là công cụ quản trị Kubernetes thông qua giao diện dòng lệnh, cho phép bạn thực thi các câu lệnh trong Kubernetes cluster.

0 0 39

- vừa được xem lúc

Triển khai EFK Stack trên Kubernetes

EFK stack on K8S. Giới thiệu. Một hệ thống có thể chạy nhiều dịch vụ hoặc ứng dụng khác nhau, vì vậy việc. theo dõi hệ thống là vô cùng cần thiết.

0 0 54

- vừa được xem lúc

Thực hành Kubernetes (K8S) bằng cách sử dụng lệnh Command

Bài hướng dẫn hôm nay sẽ hướng dẫn sử dụng K8S bằng cách sử dụng câu lệnh thay vì UI trên web. Có 2 lựa chọn để thực hiện:. . Sử dụng Cloud Shell.

0 0 42

- vừa được xem lúc

Kubernetes best practices - Liveness và Readiness Health checks

Mở đầu. Kubernetes cung cấp cho bạn một framework để chạy các hệ phân tán một cách mạnh mẽ.

0 0 36