> ## Documentation Index
> Fetch the complete documentation index at: https://docs.karchunt.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Worker Node Componentes

## kubelet

<Warning>
  It does not manage containers that were not created by Kubernetes.
</Warning>

It is an **agent** that runs on each node in the cluster. It is responsible for **registering the node** with the **kube-apiserver**. It will **create the pod** on the node when it **receives the instructions** from the **kube-apiserver**, and **monitor the node** and **container/pod state** to ensure that the desired state of the cluster is maintained.

<Expandable title="steps in detail">
  1. The kubelet **receives a PodSpec** from the kube-apiserver, which describes the **desired state of a pod**.
  2. The kubelet then **interacts with the container runtime** (like Docker, containerd, or CRI-O) to **create (pull the images)** and **manage the containers** that make up the pod.
  3. The kubelet **continuously monitors the state** of the node and the pods running on it, **reporting back to the kube-apiserver** to ensure that the **desired state is maintained**.
</Expandable>

By default, **kubelet is not automatically deployed on worker nodes**, as **deploy kubelet as a pod** is **not recommended**. Instead, kubelet is typically **installed** and **managed as a system service** on each worker node. This will ensure that the kubelet can **always manage the lifecycle of the pods** and **containers** on the node **without any dependencies** on the **Kubernetes control plane components**.

<Note>
  For kubelet installation, do refer [kubelet installation](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#installing-kubeadm-kubelet-and-kubectl)

  Also, if you want to see the kubelet running process, you can use the following command:

  ```bash title="View kubelet process" icon="terminal" theme={"theme":"github-dark-dimmed"}
  # Check the kubelet process running on the node
  ps -aux | grep kubelet

  # Check the kubelet config options
  cat /var/lib/kubelet/config.yaml

  # This file contains the kubelet's configuration, 
  # - connection details to the kube-apiserver
  # - authentication credentials
  # - other settings that govern how the kubelet operates on the node
  cat /etc/kubernetes/kubelet.conf

  # Check the kubelet service
  systemctl status kubelet
  ```
</Note>

## kube-proxy

It is a **network proxy** that runs on each node in the cluster. It is reponsible for **creating/maintaining appropriate routing/network rules on nodes** when a new service is created to **establish communication** between containers via services within the cluster. It also **handles network traffic** and **load balancing** for the services running on the worker node.

```mermaid theme={"theme":"github-dark-dimmed"}
flowchart LR
  external

  subgraph Cluster
    subgraph node1
      kube-proxy1[kube-proxy]
    end

    subgraph node2
      kube-proxy2[kube-proxy]
    end

    subgraph node3
      kube-proxy3[kube-proxy]
    end

    kube-proxy1 --- kube-proxy2
    kube-proxy2 --- kube-proxy3
  end

  external --- kube-proxy1
  external --- kube-proxy2
  external --- kube-proxy3
```

Basically, these network rules allow the **pods to communicate with each other** and with **services** in the cluster, regardless of where they are running. The kube-proxy can operate in different modes, such as **iptables** or **IPVS**, to manage the network traffic and ensure that it is properly routed to the correct pods.

### How does kube-proxy work with services?

```mermaid theme={"theme":"github-dark-dimmed"}
flowchart
  pod-network(POD network) --- pod1
  pod-network(POD network) --- pod2

  subgraph "Node 2"
    pod1["Pod 2 DB (10.106.0.2)"]
  end
  subgraph "Node 1"
    pod2["Pod 1 API (10.106.0.1)"]
  end
```

Every pod can **reach other pods** within a Kubernetes cluster by **deploying a pod networking solution**. A pod network is an **internal virtual network** connecting all nodes in a cluster so that the pods can **communicate with each other**. In this example, assuming Pod 1 is an API application and Pod 2 is the database. Pod 1 can access Pod 2 using the Pod 2 IP address, but the Pod 2 IP will **not be guaranteed** the same as always.

```mermaid theme={"theme":"github-dark-dimmed"}
flowchart
  pod-network(POD network) --- pod1
  pod-network(POD network) --- pod2

  subgraph "Node 2"
    pod2["Pod 2 DB (10.106.0.2)"]
  end
  subgraph "Node 1"
    pod1["Pod 1 API (10.106.0.1)"]
  end

  service["service.db (10.106.0.3)"]

  pod2 --- service
  pod1 --- service
```

Therefore, we have to create a Kubernetes **service** object that **exposes** the database across the cluster, which means Pod 1 (API application) can access Pod 2 (database) by using the **service name** and the **service** will also **assign an IP address**.

<AccordionGroup>
  <Accordion title="But how does the service get its IP address?">
    The service gets its IP address from the **cluster IP range** that is defined in the Kubernetes cluster configuration. When a new service is created, Kubernetes will **automatically assign** it an IP address from this range.
  </Accordion>

  <Accordion title="Does the service join the same pod network as well?">
    No, the service does not join the same pod network. The service is a **virtual component** that only exists in memory and does not have a physical presence in the cluster. It is not a real object with interfaces or active listening processes.
  </Accordion>

  <Accordion title="How does the service able to accessible from any node in the cluster?">
    The service is accessible from any node in the cluster because of the **kube-proxy**. Each node in the Kubernetes cluster **runs kube-proxy**, which **looks for new services** and **creates appropriate routing rules** on the worker nodes to **forward traffic** to the **new services to pods** whenever a new service is created. It will ensure that the containers can **talk to each other via services** within the cluster.

    ```mermaid theme={"theme":"github-dark-dimmed"}
    flowchart
      pod-network(POD network) --- pod1
      pod-network(POD network) --- pod2

      subgraph "Node 2"
        direction TB
        pod2["Pod 2 DB (10.106.0.2)"]
        kube-proxy2[kube-proxy]
        pod2 --- kube-proxy2
        table2[IPTable: 10.106.0.3 --> 10.106.0.2]
      end
      subgraph "Node 1"
        direction TB
        pod1["Pod 1 API (10.106.0.1)"]
        kube-proxy1[kube-proxy]
        pod1 --- kube-proxy1
        table1[IPTable: 10.106.0.3 --> 10.106.0.2]
      end

      service["service.db (10.106.0.3)"]

      service --- kube-proxy2
      service --- kube-proxy1
    ```

    This can be done through **IPTables rules**. It will **create an IPTable rules** on each node in the cluster to know that the Database service is actually **point** to Pod 2 (database), **10.106.0.3 ---> 10.106.0.2**. This is how kube-proxy configures a new service.
  </Accordion>
</AccordionGroup>

<Note>
  For kube-proxy installation, do refer [kube-proxy installation](https://kubernetes.io/docs/reference/setup-tools/kubeadm/generated/kubeadm_init/kubeadm_init_phase_addon_kube-proxy/)

  Do take note that, kube-proxy is actually **deployed as a DaemonSet** in Kubernetes, which means that there will be **one kube-proxy pod running on each node** in the cluster. This is because kube-proxy needs to **manage the network rules** on each node to ensure that the services are properly routed to the correct pods. Also, if you want to see the kube-proxy running process, you can use the following command:

  ```bash title="View kube-proxy process" icon="terminal" theme={"theme":"github-dark-dimmed"}
  # Check the kube-proxy pod
  kubectl get pods -n kube-system
  kubectl get daemonset -n kube-system

  # Check the kube-proxy config options
  cat /var/lib/kube-proxy/config.conf
  cat /etc/kubernetes/kube-proxy.conf

  # Check the kube-proxy process running on the node
  ps -aux | grep kube-proxy
  ```
</Note>

## Container Runtime

<Note>
  What is Container Runtime Interface (CRI)?

  The Container Runtime Interface (CRI) is a **plugin interface** that allows Kubernetes to **interact with different container runtimes**. It provides a **standardized API** for Kubernetes to manage the lifecycle of containers, regardless of the underlying container runtime being used. This means that Kubernetes can work with any container runtime that implements the CRI, such as Docker, containerd, CRI-O, etc.
</Note>

It is responsible for **running and managing the lifecycle of containers** on the worker node. Kubernetes supports several container runtimes, such as **Docker**, **containerd**, and **CRI-O**. The container runtime is responsible for **pulling the container images**, **starting and stopping the containers**, and **managing the container lifecycle**.

<Note>
  Kubernetes supports other runtime engines that adhere to the OCI standards, like containerd or Rocket, so it is not necessary to install Docker before installing Kubernetes.
</Note>

<Accordion title="Why Kubernetes no need to install Docker?" defaultOpen>
  ```mermaid theme={"theme":"github-dark-dimmed"}
  flowchart LR
    cri["Container Runtime Interface (CRI)"] ---> Kubernetes

    subgraph vendor[Container Runtime]
      rkt
      containerd
      docker[Docker Engine]
      crio[CRI-O]
    end

    vendor ---> cri
  ```

  Kubernetes only needs the **Container Runtime Interface (CRI)** to work as a **container runtime** to **perform the container operations** as long as they **adhere to the OCI standards**. Therefore, Kubernetes is compatible with any runtime engines via CRI, such as Rocket, containerd, etc. So it is **not necessary to install Docker** before installing Kubernetes.
</Accordion>

| Tool    | API Used                                                            | Primary Target       | Key Use Case                                             |
| ------- | ------------------------------------------------------------------- | -------------------- | -------------------------------------------------------- |
| crictl  | CRI API (gRPC)                                                      | Kubelet / Kubernetes | Debugging Kubernetes pods and containers.                |
| nerdctl | containerd API via its socket (/var/run/containerd/containerd.sock) | containerd daemon    | Docker-compatible CLI for modern containerd management.  |
| ctr     | containerd API via its socket (/var/run/containerd/containerd.sock) | containerd daemon    | Low-level debugging of containerd internals; minimal UX. |

### containerD & ctr

<Note>
  References

  * [https://containerd.io/](https://containerd.io/)
  * [https://github.com/containerd/containerd](https://github.com/containerd/containerd)
  * [https://github.com/containerd/containerd/tree/main/cmd/ctr](https://github.com/containerd/containerd/tree/main/cmd/ctr)
  * [https://labs.iximiuz.com/courses/containerd-cli/ctr/container-management#recap-what-is-ctr](https://labs.iximiuz.com/courses/containerd-cli/ctr/container-management#recap-what-is-ctr)
</Note>

```mermaid theme={"theme":"github-dark-dimmed"}
flowchart TD
    subgraph "Clients & Orchestrators"
        Kube["Kubernetes (Kubelet)"]
        crictl["crictl (CRI Debugging)"]
        ctr["ctr (Low-level CLI)"]
        nerdctl["nerdctl (Docker-like CLI)"]
    end

    subgraph "containerd Daemon"
        CRI["CRI Plugin (gRPC)"]
        Core["containerd Core Services"]
    end

    subgraph "Execution"
        runc["OCI Runtime (runc)"]
        cont["Running Containers"]
    end

    %% Interactions
    Kube -- "gRPC (CRI API)" --> CRI
    crictl -- "gRPC (CRI API)" --> CRI
    
    ctr -- "Native API" --> Core
    nerdctl -- "Native API" --> Core
    
    CRI -- "Internal Calls" --> Core
    Core --> runc
    runc --> cont
```

**containerD** is a **container runtime** that is designed to be **lightweight**, **efficient**, and **compliant with the <Tooltip headline="OCI" tip="Open Container Initiative creating open standards around container technology.">OCI</Tooltip>  standards**. It is a popular choice for Kubernetes clusters because of its **performance** and **simplicity**. When you install containerD, it will automatically install its command-line tool called **"ctr"**. This tool is mainly used for **debugging containerD** and is **not user-friendly**, but it provides a great way to **understand how containers work under the hood**.

Here is an example of how to use the **ctr** command-line tool to pull an image and run a container:

```bash icon="terminal" title="Pulling an image with ctr" expandable lines theme={"theme":"github-dark-dimmed"}
kcserver@kcserver:~$ ctr images pull docker.io/library/redis:alpine 
docker.io/library/redis:alpine                  fetching image content
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  waiting         |--------------------------------------|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  waiting         |--------------------------------------|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  waiting         |--------------------------------------|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  waiting         |--------------------------------------|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  waiting         |--------------------------------------|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  waiting         |--------------------------------------|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  waiting         |--------------------------------------|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  waiting         |--------------------------------------|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  waiting         |--------------------------------------|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  waiting         |--------------------------------------|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  waiting         |--------------------------------------|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  waiting         |--------------------------------------|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  waiting         |--------------------------------------|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  waiting         |--------------------------------------|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  waiting         |--------------------------------------|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  waiting         |--------------------------------------|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   waiting         |--------------------------------------|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  waiting         |--------------------------------------|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  waiting         |--------------------------------------|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   waiting         |--------------------------------------|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  waiting         |--------------------------------------|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  waiting         |--------------------------------------|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   waiting         |--------------------------------------|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  waiting         |--------------------------------------|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  waiting         |--------------------------------------|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  waiting         |--------------------------------------|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  waiting         |--------------------------------------|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  waiting         |--------------------------------------|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  waiting         |--------------------------------------|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (b95f59534a91)                  waiting         |--------------------------------------|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  waiting         |--------------------------------------|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  waiting         |--------------------------------------|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (b95f59534a91)                  waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   waiting         |--------------------------------------|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  waiting         |--------------------------------------|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  waiting         |--------------------------------------|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (b95f59534a91)                  waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  waiting         |--------------------------------------|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  waiting         |--------------------------------------|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (b95f59534a91)                  waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  waiting         |--------------------------------------|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (b95f59534a91)                  waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (b95f59534a91)                  waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (b95f59534a91)                  waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (b95f59534a91)                  waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (b95f59534a91)                  waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (b95f59534a91)                  waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (b95f59534a91)                  waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (b95f59534a91)                  waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (b95f59534a91)                  waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (b95f59534a91)                  waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  waiting         |--------------------------------------|
   │  └──layer (826f751c7f6d)                   waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  waiting         |--------------------------------------|
   │  ├──layer (826f751c7f6d)                   waiting         |--------------------------------------|
   │  └──layer (d3f91c0b9ad5)                   waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  waiting         |--------------------------------------|
   │  ├──layer (826f751c7f6d)                   waiting         |--------------------------------------|
   │  ├──layer (d3f91c0b9ad5)                   waiting         |--------------------------------------|
   │  └──layer (589002ba0eae)                   waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  waiting         |--------------------------------------|
   │  ├──layer (826f751c7f6d)                   waiting         |--------------------------------------|
   │  ├──layer (d3f91c0b9ad5)                   waiting         |--------------------------------------|
   │  ├──layer (589002ba0eae)                   waiting         |--------------------------------------|
   │  └──layer (cd9ebb746e5b)                   waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  waiting         |--------------------------------------|
   │  ├──layer (826f751c7f6d)                   waiting         |--------------------------------------|
   │  ├──layer (d3f91c0b9ad5)                   waiting         |--------------------------------------|
   │  ├──layer (589002ba0eae)                   waiting         |--------------------------------------|
   │  ├──layer (cd9ebb746e5b)                   waiting         |--------------------------------------|
   │  └──layer (4f4fb700ef54)                   waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  waiting         |--------------------------------------|
   │  ├──layer (826f751c7f6d)                   waiting         |--------------------------------------|
   │  ├──layer (d3f91c0b9ad5)                   waiting         |--------------------------------------|
   │  ├──layer (589002ba0eae)                   waiting         |--------------------------------------|
   │  ├──layer (cd9ebb746e5b)                   waiting         |--------------------------------------|
   │  ├──layer (4f4fb700ef54)                   waiting         |--------------------------------------|
   │  └──layer (cb2f87994157)                   waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  waiting         |--------------------------------------|
   │  ├──layer (826f751c7f6d)                   waiting         |--------------------------------------|
   │  ├──layer (d3f91c0b9ad5)                   waiting         |--------------------------------------|
   │  ├──layer (589002ba0eae)                   waiting         |--------------------------------------|
   │  ├──layer (cd9ebb746e5b)                   waiting         |--------------------------------------|
   │  ├──layer (4f4fb700ef54)                   waiting         |--------------------------------------|
   │  ├──layer (cb2f87994157)                   waiting         |--------------------------------------|
   │  └──layer (d67eeb8f9f36)                   waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  waiting         |--------------------------------------|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (826f751c7f6d)                   waiting         |--------------------------------------|
   │  ├──layer (d3f91c0b9ad5)                   waiting         |--------------------------------------|
   │  ├──layer (589002ba0eae)                   waiting         |--------------------------------------|
   │  ├──layer (cd9ebb746e5b)                   waiting         |--------------------------------------|
   │  ├──layer (4f4fb700ef54)                   waiting         |--------------------------------------|
   │  ├──layer (cb2f87994157)                   waiting         |--------------------------------------|
   │  └──layer (d67eeb8f9f36)                   waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (826f751c7f6d)                   waiting         |--------------------------------------|
   │  ├──layer (d3f91c0b9ad5)                   waiting         |--------------------------------------|
   │  ├──layer (589002ba0eae)                   waiting         |--------------------------------------|
   │  ├──layer (cd9ebb746e5b)                   waiting         |--------------------------------------|
   │  ├──layer (4f4fb700ef54)                   waiting         |--------------------------------------|
   │  ├──layer (cb2f87994157)                   waiting         |--------------------------------------|
   │  └──layer (d67eeb8f9f36)                   waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (826f751c7f6d)                   waiting         |--------------------------------------|
   │  ├──layer (d3f91c0b9ad5)                   waiting         |--------------------------------------|
   │  ├──layer (589002ba0eae)                   waiting         |--------------------------------------|
   │  ├──layer (cd9ebb746e5b)                   waiting         |--------------------------------------|
   │  ├──layer (4f4fb700ef54)                   waiting         |--------------------------------------|
   │  ├──layer (cb2f87994157)                   waiting         |--------------------------------------|
   │  └──layer (d67eeb8f9f36)                   waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (826f751c7f6d)                   waiting         |--------------------------------------|
   │  ├──layer (d3f91c0b9ad5)                   waiting         |--------------------------------------|
   │  ├──layer (589002ba0eae)                   waiting         |--------------------------------------|
   │  ├──layer (cd9ebb746e5b)                   waiting         |--------------------------------------|
   │  ├──layer (4f4fb700ef54)                   waiting         |--------------------------------------|
   │  ├──layer (cb2f87994157)                   waiting         |--------------------------------------|
   │  └──layer (d67eeb8f9f36)                   waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (826f751c7f6d)                   waiting         |--------------------------------------|
   │  ├──layer (d3f91c0b9ad5)                   waiting         |--------------------------------------|
   │  ├──layer (589002ba0eae)                   waiting         |--------------------------------------|
   │  ├──layer (cd9ebb746e5b)                   waiting         |--------------------------------------|
   │  ├──layer (4f4fb700ef54)                   waiting         |--------------------------------------|
   │  ├──layer (cb2f87994157)                   waiting         |--------------------------------------|
   │  └──layer (d67eeb8f9f36)                   waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (826f751c7f6d)                   waiting         |--------------------------------------|
   │  ├──layer (d3f91c0b9ad5)                   waiting         |--------------------------------------|
   │  ├──layer (589002ba0eae)                   waiting         |--------------------------------------|
   │  ├──layer (cd9ebb746e5b)                   waiting         |--------------------------------------|
   │  ├──layer (4f4fb700ef54)                   waiting         |--------------------------------------|
   │  ├──layer (cb2f87994157)                   waiting         |--------------------------------------|
   │  └──layer (d67eeb8f9f36)                   waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (826f751c7f6d)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (d3f91c0b9ad5)                   waiting         |--------------------------------------|
   │  ├──layer (589002ba0eae)                   waiting         |--------------------------------------|
   │  ├──layer (cd9ebb746e5b)                   waiting         |--------------------------------------|
   │  ├──layer (4f4fb700ef54)                   waiting         |--------------------------------------|
   │  ├──layer (cb2f87994157)                   waiting         |--------------------------------------|
   │  └──layer (d67eeb8f9f36)                   waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (826f751c7f6d)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (d3f91c0b9ad5)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (589002ba0eae)                   waiting         |--------------------------------------|
   │  ├──layer (cd9ebb746e5b)                   waiting         |--------------------------------------|
   │  ├──layer (4f4fb700ef54)                   waiting         |--------------------------------------|
   │  ├──layer (cb2f87994157)                   waiting         |--------------------------------------|
   │  └──layer (d67eeb8f9f36)                   waiting         |--------------------------------------|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (826f751c7f6d)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (d3f91c0b9ad5)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (589002ba0eae)                   waiting         |--------------------------------------|
   │  ├──layer (cd9ebb746e5b)                   waiting         |--------------------------------------|
   │  ├──layer (4f4fb700ef54)                   waiting         |--------------------------------------|
   │  ├──layer (cb2f87994157)                   waiting         |--------------------------------------|
   │  └──layer (d67eeb8f9f36)                   complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (826f751c7f6d)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (d3f91c0b9ad5)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (589002ba0eae)                   waiting         |--------------------------------------|
   │  ├──layer (cd9ebb746e5b)                   waiting         |--------------------------------------|
   │  ├──layer (4f4fb700ef54)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (cb2f87994157)                   waiting         |--------------------------------------|
   │  └──layer (d67eeb8f9f36)                   complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (826f751c7f6d)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (d3f91c0b9ad5)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (589002ba0eae)                   waiting         |--------------------------------------|
   │  ├──layer (cd9ebb746e5b)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (4f4fb700ef54)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (cb2f87994157)                   waiting         |--------------------------------------|
   │  └──layer (d67eeb8f9f36)                   complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (826f751c7f6d)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (d3f91c0b9ad5)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (589002ba0eae)                   downloading     |++++++++++++++++++++------------------|         2.0 MiB/3.7 MiB
   │  ├──layer (cd9ebb746e5b)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (4f4fb700ef54)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (cb2f87994157)                   waiting         |--------------------------------------|
   │  └──layer (d67eeb8f9f36)                   complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (826f751c7f6d)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (d3f91c0b9ad5)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (589002ba0eae)                   downloading     |++++++++++++++++++++------------------|         2.0 MiB/3.7 MiB
   │  ├──layer (cd9ebb746e5b)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (4f4fb700ef54)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (cb2f87994157)                   waiting         |--------------------------------------|
   │  └──layer (d67eeb8f9f36)                   complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (826f751c7f6d)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (d3f91c0b9ad5)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (589002ba0eae)                   downloading     |++++++++++++++++++++------------------|         2.0 MiB/3.7 MiB
   │  ├──layer (cd9ebb746e5b)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (4f4fb700ef54)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (cb2f87994157)                   waiting         |--------------------------------------|
   │  └──layer (d67eeb8f9f36)                   complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (826f751c7f6d)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (d3f91c0b9ad5)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (589002ba0eae)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (cd9ebb746e5b)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (4f4fb700ef54)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (cb2f87994157)                   waiting         |--------------------------------------|
   │  └──layer (d67eeb8f9f36)                   complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (826f751c7f6d)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (d3f91c0b9ad5)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (589002ba0eae)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (cd9ebb746e5b)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (4f4fb700ef54)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (cb2f87994157)                   downloading     |+++++++++++++-------------------------|        10.0 MiB/29.0 MiB
   │  └──layer (d67eeb8f9f36)                   complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (826f751c7f6d)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (d3f91c0b9ad5)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (589002ba0eae)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (cd9ebb746e5b)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (4f4fb700ef54)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (cb2f87994157)                   downloading     |+++++++++++++++++++++++++++++++-------|        24.0 MiB/29.0 MiB
   │  └──layer (d67eeb8f9f36)                   complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  fetching image content
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (826f751c7f6d)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (d3f91c0b9ad5)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (589002ba0eae)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (cd9ebb746e5b)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (4f4fb700ef54)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (cb2f87994157)                   extracting      |++++++++++++++++++++++++++++----------|        21.9 MiB/29.0 MiB
   │  └──layer (d67eeb8f9f36)                   complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  saved
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (826f751c7f6d)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (d3f91c0b9ad5)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (589002ba0eae)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (cd9ebb746e5b)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (4f4fb700ef54)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (cb2f87994157)                   extracting      |++++++++++++++++++++++++++++----------|        21.9 MiB/29.0 MiB
   │  └──layer (d67eeb8f9f36)                   complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  saved
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (826f751c7f6d)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (d3f91c0b9ad5)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (589002ba0eae)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (cd9ebb746e5b)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (4f4fb700ef54)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (cb2f87994157)                   extracting      |++++++++++++++++++++++++++++----------|        21.9 MiB/29.0 MiB
   │  └──layer (d67eeb8f9f36)                   complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  saved
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (826f751c7f6d)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (d3f91c0b9ad5)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (589002ba0eae)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (cd9ebb746e5b)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (4f4fb700ef54)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (cb2f87994157)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  └──layer (d67eeb8f9f36)                   complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  saved
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (826f751c7f6d)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (d3f91c0b9ad5)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (589002ba0eae)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (cd9ebb746e5b)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (4f4fb700ef54)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (cb2f87994157)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  └──layer (d67eeb8f9f36)                   complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
docker.io/library/redis:alpine                  saved
└──index (81b6f81d6a6c)                         complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c652b6ed7bee)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (d3882d80f0f6)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (97b5fbd994ef)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (3b528d9f3868)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c560572f2aa9)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4a6c79b4cf2a)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (883c7c980a2f)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──config (b95f59534a91)                  complete        |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (826f751c7f6d)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (d3f91c0b9ad5)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (589002ba0eae)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (cd9ebb746e5b)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (4f4fb700ef54)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  ├──layer (cb2f87994157)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   │  └──layer (d67eeb8f9f36)                   extracted       |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (a99ef13a9ec0)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (0f50125eb34b)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c99387bcf88c)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (8539da288423)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (c8f684a9cd49)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (ac288b8d59cc)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (d50525b44af1)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (4329dc457993)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (624ae8b29751)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (f88711430338)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (f819475c22ba)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (a7d72ed50c62)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (1e594fb983af)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (ddc29d61fa04)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (82cb19a2599c)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (a7a11b7d9343)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (87f9b4dcb882)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (dbd5b06d2bf1)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (b8239bafb8a3)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (7431382e3d7e)                  complete        |++++++++++++++++++++++++++++++++++++++|
   ├──manifest (23b09709a319)                   complete        |++++++++++++++++++++++++++++++++++++++|
   │  └──config (0beed484a8e4)                  complete        |++++++++++++++++++++++++++++++++++++++|
   └──manifest (49566e32eea1)                   complete        |++++++++++++++++++++++++++++++++++++++|
      └──config (fb01ef75ebf0)                  complete        |++++++++++++++++++++++++++++++++++++++|
application/vnd.oci.image.index.v1+json sha256:81b6f81d6a6c5b9019231a2e8eb10085e3a139a34f833dcc965a8a959b040b72
Completed pull from OCI Registry (docker.io/library/redis:alpine)       elapsed: 11.9s  total:  33.0 M  (2.8 MiB/s)
```

```bash icon="terminal" title="Running a container with ctr" expandable lines theme={"theme":"github-dark-dimmed"}
kcserver@kcserver:~$ ctr run --rm docker.io/library/redis:alpine redis-container
Starting Redis Server
1:C 12 Apr 2026 07:15:34.882 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1:C 12 Apr 2026 07:15:34.882 * Redis version=8.6.2, bits=64, commit=00000000, modified=1, pid=1, just started
1:C 12 Apr 2026 07:15:34.882 * Configuration loaded
1:M 12 Apr 2026 07:15:34.882 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
1:M 12 Apr 2026 07:15:34.882 # Server can't set maximum open files to 10032 because of OS error: Operation not permitted.
1:M 12 Apr 2026 07:15:34.882 # Current maximum open files is 1024. maxclients has been reduced to 992 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'.
1:M 12 Apr 2026 07:15:34.882 * monotonic clock: POSIX clock_gettime
1:M 12 Apr 2026 07:15:34.883 * Running mode=standalone, port=6379.
1:M 12 Apr 2026 07:15:34.883 * <bf> RedisBloom version 8.6.0 (Git=unknown)
1:M 12 Apr 2026 07:15:34.883 * <bf> Registering configuration options: [
1:M 12 Apr 2026 07:15:34.883 * <bf>     { bf-error-rate       :      0.01 }
1:M 12 Apr 2026 07:15:34.883 * <bf>     { bf-initial-size     :       100 }
1:M 12 Apr 2026 07:15:34.883 * <bf>     { bf-expansion-factor :         2 }
1:M 12 Apr 2026 07:15:34.883 * <bf>     { cf-bucket-size      :         2 }
1:M 12 Apr 2026 07:15:34.883 * <bf>     { cf-initial-size     :      1024 }
1:M 12 Apr 2026 07:15:34.883 * <bf>     { cf-max-iterations   :        20 }
1:M 12 Apr 2026 07:15:34.883 * <bf>     { cf-expansion-factor :         1 }
1:M 12 Apr 2026 07:15:34.883 * <bf>     { cf-max-expansions   :        32 }
1:M 12 Apr 2026 07:15:34.883 * <bf> ]
1:M 12 Apr 2026 07:15:34.883 * Module 'bf' loaded from /usr/local/lib/redis/modules//redisbloom.so
1:M 12 Apr 2026 07:15:34.885 * <search> Redis version found by RedisSearch : 8.6.2 - oss
1:M 12 Apr 2026 07:15:34.885 * <search> RediSearch version 8.6.0 (Git=7782b97)
1:M 12 Apr 2026 07:15:34.885 * <search> Low level api version 1 initialized successfully
1:M 12 Apr 2026 07:15:34.885 * <search> gc: ON, prefix min length: 2, min word length to stem: 4, prefix max expansions: 200, query timeout (ms): 500, timeout policy: return, oom policy: return, cursor read size: 1000, cursor max idle (ms): 300000, max doctable size: 1000000, max number of search results:  1000000, default scorer: BM25STD, 
1:M 12 Apr 2026 07:15:34.885 * <search> Initialized thread pools!
1:M 12 Apr 2026 07:15:34.885 * <search> Disabled workers threadpool of size 0
1:M 12 Apr 2026 07:15:34.885 * <search> Subscribe to config changes
1:M 12 Apr 2026 07:15:34.885 * <search> Subscribe to cluster slot migration events
1:M 12 Apr 2026 07:15:34.885 * <search> Enabled role change notification
1:M 12 Apr 2026 07:15:34.885 * <search> Cluster configuration: AUTO partitions, type: 0, coordinator timeout: 0ms
1:M 12 Apr 2026 07:15:34.885 * Module 'search' loaded from /usr/local/lib/redis/modules//redisearch.so
1:M 12 Apr 2026 07:15:34.886 * <timeseries> RedisTimeSeries version 80600, git_sha=05fd355db748676861dc4c17d19c8c1ca74c0154
1:M 12 Apr 2026 07:15:34.886 * <timeseries> Redis version found by RedisTimeSeries : 8.6.2 - oss
1:M 12 Apr 2026 07:15:34.886 * <timeseries> Registering configuration options: [
1:M 12 Apr 2026 07:15:34.886 * <timeseries>     { ts-compaction-policy   :              }
1:M 12 Apr 2026 07:15:34.886 * <timeseries>     { ts-num-threads         :            3 }
1:M 12 Apr 2026 07:15:34.886 * <timeseries>     { ts-retention-policy    :            0 }
1:M 12 Apr 2026 07:15:34.886 * <timeseries>     { ts-duplicate-policy    :        block }
1:M 12 Apr 2026 07:15:34.886 * <timeseries>     { ts-chunk-size-bytes    :         4096 }
1:M 12 Apr 2026 07:15:34.886 * <timeseries>     { ts-encoding            :   compressed }
1:M 12 Apr 2026 07:15:34.886 * <timeseries>     { ts-ignore-max-time-diff:            0 }
1:M 12 Apr 2026 07:15:34.886 * <timeseries>     { ts-ignore-max-val-diff :     0.000000 }
1:M 12 Apr 2026 07:15:34.886 * <timeseries> ]
1:M 12 Apr 2026 07:15:34.886 * <timeseries> Detected redis oss
1:M 12 Apr 2026 07:15:34.886 * <timeseries> Subscribe to ASM events
1:M 12 Apr 2026 07:15:34.886 * <timeseries> Enabled diskless replication
1:M 12 Apr 2026 07:15:34.886 * Module 'timeseries' loaded from /usr/local/lib/redis/modules//redistimeseries.so
1:M 12 Apr 2026 07:15:34.886 * <ReJSON> Created new data type 'ReJSON-RL'
1:M 12 Apr 2026 07:15:34.886 * <ReJSON> version: 80600 git sha: unknown branch: unknown
1:M 12 Apr 2026 07:15:34.886 * <ReJSON> Exported RedisJSON_V1 API
1:M 12 Apr 2026 07:15:34.886 * <ReJSON> Exported RedisJSON_V2 API
1:M 12 Apr 2026 07:15:34.886 * <ReJSON> Exported RedisJSON_V3 API
1:M 12 Apr 2026 07:15:34.886 * <ReJSON> Exported RedisJSON_V4 API
1:M 12 Apr 2026 07:15:34.886 * <ReJSON> Exported RedisJSON_V5 API
1:M 12 Apr 2026 07:15:34.886 * <ReJSON> Exported RedisJSON_V6 API
1:M 12 Apr 2026 07:15:34.886 * <ReJSON> Enabled diskless replication
1:M 12 Apr 2026 07:15:34.886 * <ReJSON> Initialized shared string cache, thread safe: true.
1:M 12 Apr 2026 07:15:34.886 * Module 'ReJSON' loaded from /usr/local/lib/redis/modules//rejson.so
1:M 12 Apr 2026 07:15:34.886 * <search> Acquired RedisJSON_V6 API
1:M 12 Apr 2026 07:15:34.921 * Server initialized
1:M 12 Apr 2026 07:15:34.921 * Ready to accept connections tcp
```

### nerdctl

<Note>
  Repository

  * [https://github.com/containerd/nerdctl](https://github.com/containerd/nerdctl)
</Note>

Just now, we mentioned that `ctr` is a **low-level tool** and not really meant for end-users. For a **more user-friendly experience**, we can use `nerdctl`, which provides a **Docker-compatible CLI** while still **leveraging containerd under the hood**. Here are some of the features that `nerdctl` offers:

* Supports Docker Compose
* Supports rootless mode
* Supports Lazy Pulling
* Supports encrypted images
* Supports P2P image distribution
* Supports container image signing and verification
* Apply Kubernetes namespaces for containers, etc
* Provides a more familiar command structure for those used to Docker

```bash icon="terminal" title="Sample commands of nerdctl" lines theme={"theme":"github-dark-dimmed"}
nerdctl
nerdctl run -it ubuntu
nerdctl run -p 8080:8080 -d webapplication
nerdctl compose -f ./docker-compose.yaml up
```

### crictl

<Note>
  Documentation

  * [https://github.com/kubernetes-sigs/cri-tools/blob/master/docs/crictl.md](https://github.com/kubernetes-sigs/cri-tools/blob/master/docs/crictl.md)
</Note>

**crictl** is a CLI tool for **CRI-compatible container runtimes**. It is primarily used for **debugging** and **managing containers** in **Kubernetes environments**. While `ctr` and `nerdctl` are **more general-purpose tools** for container management, `crictl` is specifically designed to **interact** with the **Container Runtime Interface (CRI)** used by Kubernetes.

<Info>
  Highly recommended to use crictl to [debug Kubernetes nodes](https://kubernetes.io/docs/tasks/debug/debug-cluster/crictl).
</Info>

This tool is very useful for Kubernetes administrators and developers as they can direct **debug the runtime without needing to install the full Kubernetes stack**. It allows you to **inspect and manage** containers, pods, and images directly on the node, which can be **crucial for troubleshooting issues** in a Kubernetes cluster. Remember, `crictl` is **not ideal for general container management** (create/delete) outside of Kubernetes contexts, and it is **not meant to replace tools** like `ctr` or `nerdctl` for everyday container operations.

<Warning>
  If you are using `crictl` to manage containers, for example, you create a container with `crictl` on the Kubernetes environment, you should be aware that container created by `crictl` will be deleted by Kubernetes after a while, because Kubernetes will detect that container is not managed by Kubernetes and will clean it up. As the `kubelet` will ensure a consistent state of the cluster by removing any containers that are not part of the desired state defined by Kubernetes.

  The reason is that `crictl` is using `k8s.io` namespace and interacts directly with the container runtime (like containerd) and does not register the containers it creates with Kubernetes. Therefore, Kubernetes will consider these containers as "orphaned" and will eventually clean them up to maintain the integrity of the cluster. While `ctr` and `nerdctl` both are the tools of containerd and bypass the CRI, the `kubelet` is "blind" to these containers, and thus they will not be automatically cleaned up by Kubernetes.
</Warning>

```bash icon="terminal" title="Sample commands of crictl" lines theme={"theme":"github-dark-dimmed"}
crictl help
crictl pull busybox
crictl images
crictl ps -a
crictl pods
```
