Wiki workshop · Αγγλικά

Best Practices: containerd

Scope is treated as a reviewable containerd building block in this workshop. The relevant point is not just a command, but its position in the daemon, API, plugin, snapshotter, runtime, CRI or Kubernetes node layer.

Παραδείγματα workshop σε ZIP
Πρόοδος μάθησης στη web app

Σημειώστε κεφάλαια ως αναγνωσμένα, δείτε την πρόοδο ανάγνωσης και ολοκληρώστε πρακτικές ενότητες αφού ενεργοποιήσετε την προαιρετική web app. Η πρόοδος του workshop υπολογίζεται από τα κεφάλαια όλων των σελίδων τεκμηρίωσης. Οι επιλογές μένουν σε αυτή τη συσκευή· δεν υπάρχει λογαριασμός ή συγχρονισμός με server. Δεν απαιτείται εγκατάσταση. Η ανάκληση στις Ρυθμίσεις απορρήτου διαγράφει την πρόοδο.

Πρόοδος ανάγνωσης0%
0%
0 / 21 κεφάλαια που διαβάστηκαν

Δεν υπάρχει ακόμη ελληνική έκδοση αυτού του εγγράφου. Το περιεχόμενο εμφανίζεται στα αγγλικά.

Άλλη γλωσσική έκδοσηΓερμανικά ↗Ελληνικά ↗

Best Practices: containerd

Version: July 15, 2026 This file is designed as detailed workshop and operations reference.


1. Scope

Scope is treated as a reviewable containerd building block in this workshop. The relevant point is not just a command, but its position in the daemon, API, plugin, snapshotter, runtime, CRI or Kubernetes node layer.

Review question Expectation
Layer The affected layer is named: ctr, nerdctl, crictl, CRI, OCI, CNI, registry or host.
Evidence Output, configuration or model artifact is reproducible.
Risk Impact on running containers, images, snapshots, networking or kubelet is evaluated.
Rollback Cleanup, rollback or read-only execution is documented.
bash
containerd --version 2>/dev/null || true
ctr version 2>/dev/null || true
ctr plugins ls 2>/dev/null || true
ctr namespaces ls 2>/dev/null || true
systemctl status containerd --no-pager 2>/dev/null || true
journalctl -u containerd -n 50 --no-pager 2>/dev/null || true

Practical notes for Scope:

  • containerd is the runtime core, not the full Docker developer experience.
  • ctr is close to the containerd API and mainly useful for debugging and low-level tests.
  • crictl speaks CRI and is useful for Kubernetes node diagnosis.
  • nerdctl provides friendlier workflows, but is not part of the containerd core.
  • Kubernetes objects typically live in the containerd namespace k8s.io.
  • Direct experiments should use a dedicated containerd namespace or remain static models.
  • Registry, CNI and runtime configuration are operational changes and need review.

Common failure modes:

Symptom Common cause Diagnosis
Images are not visible wrong namespace or missing pull ctr -n k8s.io images ls
Pull fails DNS, TLS, auth or registry mirror check hosts.toml, logs and resolver
Pod does not start CRI, CNI, snapshotter or runtime crictl ps -a, crictl inspect, journalctl
Container is running but ctr shows nothing wrong containerd namespace ctr namespaces ls
Disk fills up content, snapshots, leases or logs ctr content ls, ctr snapshots ls, ctr leases ls

Review questions:

  • Which containerd component is affected?
  • Which file, output or configuration supports the statement?
  • Is the topic about containerd directly, CRI, Kubernetes or an OCI layer?
  • Which change would be risky on a production node?
  • Which rollback or cleanup action is documented?
  • Which evidence must not contain secrets?

Submission format for Best Practices:

text
evidence/
  context.md
  containerd-version.txt
  config-review.txt
  command-output.txt
  risk-note.md
  cleanup.md
01 / 21

2. Runtime daemon

Runtime daemon is treated as a reviewable containerd building block in this workshop. The relevant point is not just a command, but its position in the daemon, API, plugin, snapshotter, runtime, CRI or Kubernetes node layer.

Review question Expectation
Layer The affected layer is named: ctr, nerdctl, crictl, CRI, OCI, CNI, registry or host.
Evidence Output, configuration or model artifact is reproducible.
Risk Impact on running containers, images, snapshots, networking or kubelet is evaluated.
Rollback Cleanup, rollback or read-only execution is documented.
bash
containerd --version 2>/dev/null || true
ctr version 2>/dev/null || true
ctr plugins ls 2>/dev/null || true
ctr namespaces ls 2>/dev/null || true
systemctl status containerd --no-pager 2>/dev/null || true
journalctl -u containerd -n 50 --no-pager 2>/dev/null || true

Practical notes for Runtime daemon:

  • containerd is the runtime core, not the full Docker developer experience.
  • ctr is close to the containerd API and mainly useful for debugging and low-level tests.
  • crictl speaks CRI and is useful for Kubernetes node diagnosis.
  • nerdctl provides friendlier workflows, but is not part of the containerd core.
  • Kubernetes objects typically live in the containerd namespace k8s.io.
  • Direct experiments should use a dedicated containerd namespace or remain static models.
  • Registry, CNI and runtime configuration are operational changes and need review.

Common failure modes:

Symptom Common cause Diagnosis
Images are not visible wrong namespace or missing pull ctr -n k8s.io images ls
Pull fails DNS, TLS, auth or registry mirror check hosts.toml, logs and resolver
Pod does not start CRI, CNI, snapshotter or runtime crictl ps -a, crictl inspect, journalctl
Container is running but ctr shows nothing wrong containerd namespace ctr namespaces ls
Disk fills up content, snapshots, leases or logs ctr content ls, ctr snapshots ls, ctr leases ls

Review questions:

  • Which containerd component is affected?
  • Which file, output or configuration supports the statement?
  • Is the topic about containerd directly, CRI, Kubernetes or an OCI layer?
  • Which change would be risky on a production node?
  • Which rollback or cleanup action is documented?
  • Which evidence must not contain secrets?

Submission format for Best Practices:

text
evidence/
  context.md
  containerd-version.txt
  config-review.txt
  command-output.txt
  risk-note.md
  cleanup.md
02 / 21

3. Plugin model

Plugin model is treated as a reviewable containerd building block in this workshop. The relevant point is not just a command, but its position in the daemon, API, plugin, snapshotter, runtime, CRI or Kubernetes node layer.

Review question Expectation
Layer The affected layer is named: ctr, nerdctl, crictl, CRI, OCI, CNI, registry or host.
Evidence Output, configuration or model artifact is reproducible.
Risk Impact on running containers, images, snapshots, networking or kubelet is evaluated.
Rollback Cleanup, rollback or read-only execution is documented.
bash
containerd --version 2>/dev/null || true
ctr version 2>/dev/null || true
ctr plugins ls 2>/dev/null || true
ctr namespaces ls 2>/dev/null || true
systemctl status containerd --no-pager 2>/dev/null || true
journalctl -u containerd -n 50 --no-pager 2>/dev/null || true

Practical notes for Plugin model:

  • containerd is the runtime core, not the full Docker developer experience.
  • ctr is close to the containerd API and mainly useful for debugging and low-level tests.
  • crictl speaks CRI and is useful for Kubernetes node diagnosis.
  • nerdctl provides friendlier workflows, but is not part of the containerd core.
  • Kubernetes objects typically live in the containerd namespace k8s.io.
  • Direct experiments should use a dedicated containerd namespace or remain static models.
  • Registry, CNI and runtime configuration are operational changes and need review.

Common failure modes:

Symptom Common cause Diagnosis
Images are not visible wrong namespace or missing pull ctr -n k8s.io images ls
Pull fails DNS, TLS, auth or registry mirror check hosts.toml, logs and resolver
Pod does not start CRI, CNI, snapshotter or runtime crictl ps -a, crictl inspect, journalctl
Container is running but ctr shows nothing wrong containerd namespace ctr namespaces ls
Disk fills up content, snapshots, leases or logs ctr content ls, ctr snapshots ls, ctr leases ls

Review questions:

  • Which containerd component is affected?
  • Which file, output or configuration supports the statement?
  • Is the topic about containerd directly, CRI, Kubernetes or an OCI layer?
  • Which change would be risky on a production node?
  • Which rollback or cleanup action is documented?
  • Which evidence must not contain secrets?

Submission format for Best Practices:

text
evidence/
  context.md
  containerd-version.txt
  config-review.txt
  command-output.txt
  risk-note.md
  cleanup.md
03 / 21

4. Content store

Content store is treated as a reviewable containerd building block in this workshop. The relevant point is not just a command, but its position in the daemon, API, plugin, snapshotter, runtime, CRI or Kubernetes node layer.

Review question Expectation
Layer The affected layer is named: ctr, nerdctl, crictl, CRI, OCI, CNI, registry or host.
Evidence Output, configuration or model artifact is reproducible.
Risk Impact on running containers, images, snapshots, networking or kubelet is evaluated.
Rollback Cleanup, rollback or read-only execution is documented.
bash
containerd --version 2>/dev/null || true
ctr version 2>/dev/null || true
ctr plugins ls 2>/dev/null || true
ctr namespaces ls 2>/dev/null || true
systemctl status containerd --no-pager 2>/dev/null || true
journalctl -u containerd -n 50 --no-pager 2>/dev/null || true

Practical notes for Content store:

  • containerd is the runtime core, not the full Docker developer experience.
  • ctr is close to the containerd API and mainly useful for debugging and low-level tests.
  • crictl speaks CRI and is useful for Kubernetes node diagnosis.
  • nerdctl provides friendlier workflows, but is not part of the containerd core.
  • Kubernetes objects typically live in the containerd namespace k8s.io.
  • Direct experiments should use a dedicated containerd namespace or remain static models.
  • Registry, CNI and runtime configuration are operational changes and need review.

Common failure modes:

Symptom Common cause Diagnosis
Images are not visible wrong namespace or missing pull ctr -n k8s.io images ls
Pull fails DNS, TLS, auth or registry mirror check hosts.toml, logs and resolver
Pod does not start CRI, CNI, snapshotter or runtime crictl ps -a, crictl inspect, journalctl
Container is running but ctr shows nothing wrong containerd namespace ctr namespaces ls
Disk fills up content, snapshots, leases or logs ctr content ls, ctr snapshots ls, ctr leases ls

Review questions:

  • Which containerd component is affected?
  • Which file, output or configuration supports the statement?
  • Is the topic about containerd directly, CRI, Kubernetes or an OCI layer?
  • Which change would be risky on a production node?
  • Which rollback or cleanup action is documented?
  • Which evidence must not contain secrets?

Submission format for Best Practices:

text
evidence/
  context.md
  containerd-version.txt
  config-review.txt
  command-output.txt
  risk-note.md
  cleanup.md
04 / 21

5. Metadata store

Metadata store is treated as a reviewable containerd building block in this workshop. The relevant point is not just a command, but its position in the daemon, API, plugin, snapshotter, runtime, CRI or Kubernetes node layer.

Review question Expectation
Layer The affected layer is named: ctr, nerdctl, crictl, CRI, OCI, CNI, registry or host.
Evidence Output, configuration or model artifact is reproducible.
Risk Impact on running containers, images, snapshots, networking or kubelet is evaluated.
Rollback Cleanup, rollback or read-only execution is documented.
bash
containerd --version 2>/dev/null || true
ctr version 2>/dev/null || true
ctr plugins ls 2>/dev/null || true
ctr namespaces ls 2>/dev/null || true
systemctl status containerd --no-pager 2>/dev/null || true
journalctl -u containerd -n 50 --no-pager 2>/dev/null || true

Practical notes for Metadata store:

  • containerd is the runtime core, not the full Docker developer experience.
  • ctr is close to the containerd API and mainly useful for debugging and low-level tests.
  • crictl speaks CRI and is useful for Kubernetes node diagnosis.
  • nerdctl provides friendlier workflows, but is not part of the containerd core.
  • Kubernetes objects typically live in the containerd namespace k8s.io.
  • Direct experiments should use a dedicated containerd namespace or remain static models.
  • Registry, CNI and runtime configuration are operational changes and need review.

Common failure modes:

Symptom Common cause Diagnosis
Images are not visible wrong namespace or missing pull ctr -n k8s.io images ls
Pull fails DNS, TLS, auth or registry mirror check hosts.toml, logs and resolver
Pod does not start CRI, CNI, snapshotter or runtime crictl ps -a, crictl inspect, journalctl
Container is running but ctr shows nothing wrong containerd namespace ctr namespaces ls
Disk fills up content, snapshots, leases or logs ctr content ls, ctr snapshots ls, ctr leases ls

Review questions:

  • Which containerd component is affected?
  • Which file, output or configuration supports the statement?
  • Is the topic about containerd directly, CRI, Kubernetes or an OCI layer?
  • Which change would be risky on a production node?
  • Which rollback or cleanup action is documented?
  • Which evidence must not contain secrets?

Submission format for Best Practices:

text
evidence/
  context.md
  containerd-version.txt
  config-review.txt
  command-output.txt
  risk-note.md
  cleanup.md
05 / 21

6. Snapshotter

Snapshotter is treated as a reviewable containerd building block in this workshop. The relevant point is not just a command, but its position in the daemon, API, plugin, snapshotter, runtime, CRI or Kubernetes node layer.

Review question Expectation
Layer The affected layer is named: ctr, nerdctl, crictl, CRI, OCI, CNI, registry or host.
Evidence Output, configuration or model artifact is reproducible.
Risk Impact on running containers, images, snapshots, networking or kubelet is evaluated.
Rollback Cleanup, rollback or read-only execution is documented.
bash
containerd --version 2>/dev/null || true
ctr version 2>/dev/null || true
ctr plugins ls 2>/dev/null || true
ctr namespaces ls 2>/dev/null || true
systemctl status containerd --no-pager 2>/dev/null || true
journalctl -u containerd -n 50 --no-pager 2>/dev/null || true

Practical notes for Snapshotter:

  • containerd is the runtime core, not the full Docker developer experience.
  • ctr is close to the containerd API and mainly useful for debugging and low-level tests.
  • crictl speaks CRI and is useful for Kubernetes node diagnosis.
  • nerdctl provides friendlier workflows, but is not part of the containerd core.
  • Kubernetes objects typically live in the containerd namespace k8s.io.
  • Direct experiments should use a dedicated containerd namespace or remain static models.
  • Registry, CNI and runtime configuration are operational changes and need review.

Common failure modes:

Symptom Common cause Diagnosis
Images are not visible wrong namespace or missing pull ctr -n k8s.io images ls
Pull fails DNS, TLS, auth or registry mirror check hosts.toml, logs and resolver
Pod does not start CRI, CNI, snapshotter or runtime crictl ps -a, crictl inspect, journalctl
Container is running but ctr shows nothing wrong containerd namespace ctr namespaces ls
Disk fills up content, snapshots, leases or logs ctr content ls, ctr snapshots ls, ctr leases ls

Review questions:

  • Which containerd component is affected?
  • Which file, output or configuration supports the statement?
  • Is the topic about containerd directly, CRI, Kubernetes or an OCI layer?
  • Which change would be risky on a production node?
  • Which rollback or cleanup action is documented?
  • Which evidence must not contain secrets?

Submission format for Best Practices:

text
evidence/
  context.md
  containerd-version.txt
  config-review.txt
  command-output.txt
  risk-note.md
  cleanup.md
06 / 21

7. Runtime v2

Runtime v2 is treated as a reviewable containerd building block in this workshop. The relevant point is not just a command, but its position in the daemon, API, plugin, snapshotter, runtime, CRI or Kubernetes node layer.

Review question Expectation
Layer The affected layer is named: ctr, nerdctl, crictl, CRI, OCI, CNI, registry or host.
Evidence Output, configuration or model artifact is reproducible.
Risk Impact on running containers, images, snapshots, networking or kubelet is evaluated.
Rollback Cleanup, rollback or read-only execution is documented.
bash
containerd --version 2>/dev/null || true
ctr version 2>/dev/null || true
ctr plugins ls 2>/dev/null || true
ctr namespaces ls 2>/dev/null || true
systemctl status containerd --no-pager 2>/dev/null || true
journalctl -u containerd -n 50 --no-pager 2>/dev/null || true

Practical notes for Runtime v2:

  • containerd is the runtime core, not the full Docker developer experience.
  • ctr is close to the containerd API and mainly useful for debugging and low-level tests.
  • crictl speaks CRI and is useful for Kubernetes node diagnosis.
  • nerdctl provides friendlier workflows, but is not part of the containerd core.
  • Kubernetes objects typically live in the containerd namespace k8s.io.
  • Direct experiments should use a dedicated containerd namespace or remain static models.
  • Registry, CNI and runtime configuration are operational changes and need review.

Common failure modes:

Symptom Common cause Diagnosis
Images are not visible wrong namespace or missing pull ctr -n k8s.io images ls
Pull fails DNS, TLS, auth or registry mirror check hosts.toml, logs and resolver
Pod does not start CRI, CNI, snapshotter or runtime crictl ps -a, crictl inspect, journalctl
Container is running but ctr shows nothing wrong containerd namespace ctr namespaces ls
Disk fills up content, snapshots, leases or logs ctr content ls, ctr snapshots ls, ctr leases ls

Review questions:

  • Which containerd component is affected?
  • Which file, output or configuration supports the statement?
  • Is the topic about containerd directly, CRI, Kubernetes or an OCI layer?
  • Which change would be risky on a production node?
  • Which rollback or cleanup action is documented?
  • Which evidence must not contain secrets?

Submission format for Best Practices:

text
evidence/
  context.md
  containerd-version.txt
  config-review.txt
  command-output.txt
  risk-note.md
  cleanup.md
07 / 21

8. Shim process

Shim process is treated as a reviewable containerd building block in this workshop. The relevant point is not just a command, but its position in the daemon, API, plugin, snapshotter, runtime, CRI or Kubernetes node layer.

Review question Expectation
Layer The affected layer is named: ctr, nerdctl, crictl, CRI, OCI, CNI, registry or host.
Evidence Output, configuration or model artifact is reproducible.
Risk Impact on running containers, images, snapshots, networking or kubelet is evaluated.
Rollback Cleanup, rollback or read-only execution is documented.
bash
containerd --version 2>/dev/null || true
ctr version 2>/dev/null || true
ctr plugins ls 2>/dev/null || true
ctr namespaces ls 2>/dev/null || true
systemctl status containerd --no-pager 2>/dev/null || true
journalctl -u containerd -n 50 --no-pager 2>/dev/null || true

Practical notes for Shim process:

  • containerd is the runtime core, not the full Docker developer experience.
  • ctr is close to the containerd API and mainly useful for debugging and low-level tests.
  • crictl speaks CRI and is useful for Kubernetes node diagnosis.
  • nerdctl provides friendlier workflows, but is not part of the containerd core.
  • Kubernetes objects typically live in the containerd namespace k8s.io.
  • Direct experiments should use a dedicated containerd namespace or remain static models.
  • Registry, CNI and runtime configuration are operational changes and need review.

Common failure modes:

Symptom Common cause Diagnosis
Images are not visible wrong namespace or missing pull ctr -n k8s.io images ls
Pull fails DNS, TLS, auth or registry mirror check hosts.toml, logs and resolver
Pod does not start CRI, CNI, snapshotter or runtime crictl ps -a, crictl inspect, journalctl
Container is running but ctr shows nothing wrong containerd namespace ctr namespaces ls
Disk fills up content, snapshots, leases or logs ctr content ls, ctr snapshots ls, ctr leases ls

Review questions:

  • Which containerd component is affected?
  • Which file, output or configuration supports the statement?
  • Is the topic about containerd directly, CRI, Kubernetes or an OCI layer?
  • Which change would be risky on a production node?
  • Which rollback or cleanup action is documented?
  • Which evidence must not contain secrets?

Submission format for Best Practices:

text
evidence/
  context.md
  containerd-version.txt
  config-review.txt
  command-output.txt
  risk-note.md
  cleanup.md
08 / 21

9. OCI runtime

OCI runtime is treated as a reviewable containerd building block in this workshop. The relevant point is not just a command, but its position in the daemon, API, plugin, snapshotter, runtime, CRI or Kubernetes node layer.

Review question Expectation
Layer The affected layer is named: ctr, nerdctl, crictl, CRI, OCI, CNI, registry or host.
Evidence Output, configuration or model artifact is reproducible.
Risk Impact on running containers, images, snapshots, networking or kubelet is evaluated.
Rollback Cleanup, rollback or read-only execution is documented.
bash
containerd --version 2>/dev/null || true
ctr version 2>/dev/null || true
ctr plugins ls 2>/dev/null || true
ctr namespaces ls 2>/dev/null || true
systemctl status containerd --no-pager 2>/dev/null || true
journalctl -u containerd -n 50 --no-pager 2>/dev/null || true

Practical notes for OCI runtime:

  • containerd is the runtime core, not the full Docker developer experience.
  • ctr is close to the containerd API and mainly useful for debugging and low-level tests.
  • crictl speaks CRI and is useful for Kubernetes node diagnosis.
  • nerdctl provides friendlier workflows, but is not part of the containerd core.
  • Kubernetes objects typically live in the containerd namespace k8s.io.
  • Direct experiments should use a dedicated containerd namespace or remain static models.
  • Registry, CNI and runtime configuration are operational changes and need review.

Common failure modes:

Symptom Common cause Diagnosis
Images are not visible wrong namespace or missing pull ctr -n k8s.io images ls
Pull fails DNS, TLS, auth or registry mirror check hosts.toml, logs and resolver
Pod does not start CRI, CNI, snapshotter or runtime crictl ps -a, crictl inspect, journalctl
Container is running but ctr shows nothing wrong containerd namespace ctr namespaces ls
Disk fills up content, snapshots, leases or logs ctr content ls, ctr snapshots ls, ctr leases ls

Review questions:

  • Which containerd component is affected?
  • Which file, output or configuration supports the statement?
  • Is the topic about containerd directly, CRI, Kubernetes or an OCI layer?
  • Which change would be risky on a production node?
  • Which rollback or cleanup action is documented?
  • Which evidence must not contain secrets?

Submission format for Best Practices:

text
evidence/
  context.md
  containerd-version.txt
  config-review.txt
  command-output.txt
  risk-note.md
  cleanup.md
09 / 21

10. CRI integration

CRI integration is treated as a reviewable containerd building block in this workshop. The relevant point is not just a command, but its position in the daemon, API, plugin, snapshotter, runtime, CRI or Kubernetes node layer.

Review question Expectation
Layer The affected layer is named: ctr, nerdctl, crictl, CRI, OCI, CNI, registry or host.
Evidence Output, configuration or model artifact is reproducible.
Risk Impact on running containers, images, snapshots, networking or kubelet is evaluated.
Rollback Cleanup, rollback or read-only execution is documented.
bash
containerd --version 2>/dev/null || true
ctr version 2>/dev/null || true
ctr plugins ls 2>/dev/null || true
ctr namespaces ls 2>/dev/null || true
systemctl status containerd --no-pager 2>/dev/null || true
journalctl -u containerd -n 50 --no-pager 2>/dev/null || true

Practical notes for CRI integration:

  • containerd is the runtime core, not the full Docker developer experience.
  • ctr is close to the containerd API and mainly useful for debugging and low-level tests.
  • crictl speaks CRI and is useful for Kubernetes node diagnosis.
  • nerdctl provides friendlier workflows, but is not part of the containerd core.
  • Kubernetes objects typically live in the containerd namespace k8s.io.
  • Direct experiments should use a dedicated containerd namespace or remain static models.
  • Registry, CNI and runtime configuration are operational changes and need review.

Common failure modes:

Symptom Common cause Diagnosis
Images are not visible wrong namespace or missing pull ctr -n k8s.io images ls
Pull fails DNS, TLS, auth or registry mirror check hosts.toml, logs and resolver
Pod does not start CRI, CNI, snapshotter or runtime crictl ps -a, crictl inspect, journalctl
Container is running but ctr shows nothing wrong containerd namespace ctr namespaces ls
Disk fills up content, snapshots, leases or logs ctr content ls, ctr snapshots ls, ctr leases ls

Review questions:

  • Which containerd component is affected?
  • Which file, output or configuration supports the statement?
  • Is the topic about containerd directly, CRI, Kubernetes or an OCI layer?
  • Which change would be risky on a production node?
  • Which rollback or cleanup action is documented?
  • Which evidence must not contain secrets?

Submission format for Best Practices:

text
evidence/
  context.md
  containerd-version.txt
  config-review.txt
  command-output.txt
  risk-note.md
  cleanup.md
10 / 21

11. Kubernetes node

Kubernetes node is treated as a reviewable containerd building block in this workshop. The relevant point is not just a command, but its position in the daemon, API, plugin, snapshotter, runtime, CRI or Kubernetes node layer.

Review question Expectation
Layer The affected layer is named: ctr, nerdctl, crictl, CRI, OCI, CNI, registry or host.
Evidence Output, configuration or model artifact is reproducible.
Risk Impact on running containers, images, snapshots, networking or kubelet is evaluated.
Rollback Cleanup, rollback or read-only execution is documented.
bash
containerd --version 2>/dev/null || true
ctr version 2>/dev/null || true
ctr plugins ls 2>/dev/null || true
ctr namespaces ls 2>/dev/null || true
systemctl status containerd --no-pager 2>/dev/null || true
journalctl -u containerd -n 50 --no-pager 2>/dev/null || true

Practical notes for Kubernetes node:

  • containerd is the runtime core, not the full Docker developer experience.
  • ctr is close to the containerd API and mainly useful for debugging and low-level tests.
  • crictl speaks CRI and is useful for Kubernetes node diagnosis.
  • nerdctl provides friendlier workflows, but is not part of the containerd core.
  • Kubernetes objects typically live in the containerd namespace k8s.io.
  • Direct experiments should use a dedicated containerd namespace or remain static models.
  • Registry, CNI and runtime configuration are operational changes and need review.

Common failure modes:

Symptom Common cause Diagnosis
Images are not visible wrong namespace or missing pull ctr -n k8s.io images ls
Pull fails DNS, TLS, auth or registry mirror check hosts.toml, logs and resolver
Pod does not start CRI, CNI, snapshotter or runtime crictl ps -a, crictl inspect, journalctl
Container is running but ctr shows nothing wrong containerd namespace ctr namespaces ls
Disk fills up content, snapshots, leases or logs ctr content ls, ctr snapshots ls, ctr leases ls

Review questions:

  • Which containerd component is affected?
  • Which file, output or configuration supports the statement?
  • Is the topic about containerd directly, CRI, Kubernetes or an OCI layer?
  • Which change would be risky on a production node?
  • Which rollback or cleanup action is documented?
  • Which evidence must not contain secrets?

Submission format for Best Practices:

text
evidence/
  context.md
  containerd-version.txt
  config-review.txt
  command-output.txt
  risk-note.md
  cleanup.md
11 / 21

12. Registry resolver

Registry resolver is treated as a reviewable containerd building block in this workshop. The relevant point is not just a command, but its position in the daemon, API, plugin, snapshotter, runtime, CRI or Kubernetes node layer.

Review question Expectation
Layer The affected layer is named: ctr, nerdctl, crictl, CRI, OCI, CNI, registry or host.
Evidence Output, configuration or model artifact is reproducible.
Risk Impact on running containers, images, snapshots, networking or kubelet is evaluated.
Rollback Cleanup, rollback or read-only execution is documented.
bash
containerd --version 2>/dev/null || true
ctr version 2>/dev/null || true
ctr plugins ls 2>/dev/null || true
ctr namespaces ls 2>/dev/null || true
systemctl status containerd --no-pager 2>/dev/null || true
journalctl -u containerd -n 50 --no-pager 2>/dev/null || true

Practical notes for Registry resolver:

  • containerd is the runtime core, not the full Docker developer experience.
  • ctr is close to the containerd API and mainly useful for debugging and low-level tests.
  • crictl speaks CRI and is useful for Kubernetes node diagnosis.
  • nerdctl provides friendlier workflows, but is not part of the containerd core.
  • Kubernetes objects typically live in the containerd namespace k8s.io.
  • Direct experiments should use a dedicated containerd namespace or remain static models.
  • Registry, CNI and runtime configuration are operational changes and need review.

Common failure modes:

Symptom Common cause Diagnosis
Images are not visible wrong namespace or missing pull ctr -n k8s.io images ls
Pull fails DNS, TLS, auth or registry mirror check hosts.toml, logs and resolver
Pod does not start CRI, CNI, snapshotter or runtime crictl ps -a, crictl inspect, journalctl
Container is running but ctr shows nothing wrong containerd namespace ctr namespaces ls
Disk fills up content, snapshots, leases or logs ctr content ls, ctr snapshots ls, ctr leases ls

Review questions:

  • Which containerd component is affected?
  • Which file, output or configuration supports the statement?
  • Is the topic about containerd directly, CRI, Kubernetes or an OCI layer?
  • Which change would be risky on a production node?
  • Which rollback or cleanup action is documented?
  • Which evidence must not contain secrets?

Submission format for Best Practices:

text
evidence/
  context.md
  containerd-version.txt
  config-review.txt
  command-output.txt
  risk-note.md
  cleanup.md
12 / 21

13. CNI handoff

CNI handoff is treated as a reviewable containerd building block in this workshop. The relevant point is not just a command, but its position in the daemon, API, plugin, snapshotter, runtime, CRI or Kubernetes node layer.

Review question Expectation
Layer The affected layer is named: ctr, nerdctl, crictl, CRI, OCI, CNI, registry or host.
Evidence Output, configuration or model artifact is reproducible.
Risk Impact on running containers, images, snapshots, networking or kubelet is evaluated.
Rollback Cleanup, rollback or read-only execution is documented.
bash
containerd --version 2>/dev/null || true
ctr version 2>/dev/null || true
ctr plugins ls 2>/dev/null || true
ctr namespaces ls 2>/dev/null || true
systemctl status containerd --no-pager 2>/dev/null || true
journalctl -u containerd -n 50 --no-pager 2>/dev/null || true

Practical notes for CNI handoff:

  • containerd is the runtime core, not the full Docker developer experience.
  • ctr is close to the containerd API and mainly useful for debugging and low-level tests.
  • crictl speaks CRI and is useful for Kubernetes node diagnosis.
  • nerdctl provides friendlier workflows, but is not part of the containerd core.
  • Kubernetes objects typically live in the containerd namespace k8s.io.
  • Direct experiments should use a dedicated containerd namespace or remain static models.
  • Registry, CNI and runtime configuration are operational changes and need review.

Common failure modes:

Symptom Common cause Diagnosis
Images are not visible wrong namespace or missing pull ctr -n k8s.io images ls
Pull fails DNS, TLS, auth or registry mirror check hosts.toml, logs and resolver
Pod does not start CRI, CNI, snapshotter or runtime crictl ps -a, crictl inspect, journalctl
Container is running but ctr shows nothing wrong containerd namespace ctr namespaces ls
Disk fills up content, snapshots, leases or logs ctr content ls, ctr snapshots ls, ctr leases ls

Review questions:

  • Which containerd component is affected?
  • Which file, output or configuration supports the statement?
  • Is the topic about containerd directly, CRI, Kubernetes or an OCI layer?
  • Which change would be risky on a production node?
  • Which rollback or cleanup action is documented?
  • Which evidence must not contain secrets?

Submission format for Best Practices:

text
evidence/
  context.md
  containerd-version.txt
  config-review.txt
  command-output.txt
  risk-note.md
  cleanup.md
13 / 21

14. Garbage collection

Garbage collection is treated as a reviewable containerd building block in this workshop. The relevant point is not just a command, but its position in the daemon, API, plugin, snapshotter, runtime, CRI or Kubernetes node layer.

Review question Expectation
Layer The affected layer is named: ctr, nerdctl, crictl, CRI, OCI, CNI, registry or host.
Evidence Output, configuration or model artifact is reproducible.
Risk Impact on running containers, images, snapshots, networking or kubelet is evaluated.
Rollback Cleanup, rollback or read-only execution is documented.
bash
containerd --version 2>/dev/null || true
ctr version 2>/dev/null || true
ctr plugins ls 2>/dev/null || true
ctr namespaces ls 2>/dev/null || true
systemctl status containerd --no-pager 2>/dev/null || true
journalctl -u containerd -n 50 --no-pager 2>/dev/null || true

Practical notes for Garbage collection:

  • containerd is the runtime core, not the full Docker developer experience.
  • ctr is close to the containerd API and mainly useful for debugging and low-level tests.
  • crictl speaks CRI and is useful for Kubernetes node diagnosis.
  • nerdctl provides friendlier workflows, but is not part of the containerd core.
  • Kubernetes objects typically live in the containerd namespace k8s.io.
  • Direct experiments should use a dedicated containerd namespace or remain static models.
  • Registry, CNI and runtime configuration are operational changes and need review.

Common failure modes:

Symptom Common cause Diagnosis
Images are not visible wrong namespace or missing pull ctr -n k8s.io images ls
Pull fails DNS, TLS, auth or registry mirror check hosts.toml, logs and resolver
Pod does not start CRI, CNI, snapshotter or runtime crictl ps -a, crictl inspect, journalctl
Container is running but ctr shows nothing wrong containerd namespace ctr namespaces ls
Disk fills up content, snapshots, leases or logs ctr content ls, ctr snapshots ls, ctr leases ls

Review questions:

  • Which containerd component is affected?
  • Which file, output or configuration supports the statement?
  • Is the topic about containerd directly, CRI, Kubernetes or an OCI layer?
  • Which change would be risky on a production node?
  • Which rollback or cleanup action is documented?
  • Which evidence must not contain secrets?

Submission format for Best Practices:

text
evidence/
  context.md
  containerd-version.txt
  config-review.txt
  command-output.txt
  risk-note.md
  cleanup.md
14 / 21

15. Namespaces

Namespaces is treated as a reviewable containerd building block in this workshop. The relevant point is not just a command, but its position in the daemon, API, plugin, snapshotter, runtime, CRI or Kubernetes node layer.

Review question Expectation
Layer The affected layer is named: ctr, nerdctl, crictl, CRI, OCI, CNI, registry or host.
Evidence Output, configuration or model artifact is reproducible.
Risk Impact on running containers, images, snapshots, networking or kubelet is evaluated.
Rollback Cleanup, rollback or read-only execution is documented.
bash
containerd --version 2>/dev/null || true
ctr version 2>/dev/null || true
ctr plugins ls 2>/dev/null || true
ctr namespaces ls 2>/dev/null || true
systemctl status containerd --no-pager 2>/dev/null || true
journalctl -u containerd -n 50 --no-pager 2>/dev/null || true

Practical notes for Namespaces:

  • containerd is the runtime core, not the full Docker developer experience.
  • ctr is close to the containerd API and mainly useful for debugging and low-level tests.
  • crictl speaks CRI and is useful for Kubernetes node diagnosis.
  • nerdctl provides friendlier workflows, but is not part of the containerd core.
  • Kubernetes objects typically live in the containerd namespace k8s.io.
  • Direct experiments should use a dedicated containerd namespace or remain static models.
  • Registry, CNI and runtime configuration are operational changes and need review.

Common failure modes:

Symptom Common cause Diagnosis
Images are not visible wrong namespace or missing pull ctr -n k8s.io images ls
Pull fails DNS, TLS, auth or registry mirror check hosts.toml, logs and resolver
Pod does not start CRI, CNI, snapshotter or runtime crictl ps -a, crictl inspect, journalctl
Container is running but ctr shows nothing wrong containerd namespace ctr namespaces ls
Disk fills up content, snapshots, leases or logs ctr content ls, ctr snapshots ls, ctr leases ls

Review questions:

  • Which containerd component is affected?
  • Which file, output or configuration supports the statement?
  • Is the topic about containerd directly, CRI, Kubernetes or an OCI layer?
  • Which change would be risky on a production node?
  • Which rollback or cleanup action is documented?
  • Which evidence must not contain secrets?

Submission format for Best Practices:

text
evidence/
  context.md
  containerd-version.txt
  config-review.txt
  command-output.txt
  risk-note.md
  cleanup.md
15 / 21

16. Leases

Leases is treated as a reviewable containerd building block in this workshop. The relevant point is not just a command, but its position in the daemon, API, plugin, snapshotter, runtime, CRI or Kubernetes node layer.

Review question Expectation
Layer The affected layer is named: ctr, nerdctl, crictl, CRI, OCI, CNI, registry or host.
Evidence Output, configuration or model artifact is reproducible.
Risk Impact on running containers, images, snapshots, networking or kubelet is evaluated.
Rollback Cleanup, rollback or read-only execution is documented.
bash
containerd --version 2>/dev/null || true
ctr version 2>/dev/null || true
ctr plugins ls 2>/dev/null || true
ctr namespaces ls 2>/dev/null || true
systemctl status containerd --no-pager 2>/dev/null || true
journalctl -u containerd -n 50 --no-pager 2>/dev/null || true

Practical notes for Leases:

  • containerd is the runtime core, not the full Docker developer experience.
  • ctr is close to the containerd API and mainly useful for debugging and low-level tests.
  • crictl speaks CRI and is useful for Kubernetes node diagnosis.
  • nerdctl provides friendlier workflows, but is not part of the containerd core.
  • Kubernetes objects typically live in the containerd namespace k8s.io.
  • Direct experiments should use a dedicated containerd namespace or remain static models.
  • Registry, CNI and runtime configuration are operational changes and need review.

Common failure modes:

Symptom Common cause Diagnosis
Images are not visible wrong namespace or missing pull ctr -n k8s.io images ls
Pull fails DNS, TLS, auth or registry mirror check hosts.toml, logs and resolver
Pod does not start CRI, CNI, snapshotter or runtime crictl ps -a, crictl inspect, journalctl
Container is running but ctr shows nothing wrong containerd namespace ctr namespaces ls
Disk fills up content, snapshots, leases or logs ctr content ls, ctr snapshots ls, ctr leases ls

Review questions:

  • Which containerd component is affected?
  • Which file, output or configuration supports the statement?
  • Is the topic about containerd directly, CRI, Kubernetes or an OCI layer?
  • Which change would be risky on a production node?
  • Which rollback or cleanup action is documented?
  • Which evidence must not contain secrets?

Submission format for Best Practices:

text
evidence/
  context.md
  containerd-version.txt
  config-review.txt
  command-output.txt
  risk-note.md
  cleanup.md
16 / 21

17. Observability

Observability is treated as a reviewable containerd building block in this workshop. The relevant point is not just a command, but its position in the daemon, API, plugin, snapshotter, runtime, CRI or Kubernetes node layer.

Review question Expectation
Layer The affected layer is named: ctr, nerdctl, crictl, CRI, OCI, CNI, registry or host.
Evidence Output, configuration or model artifact is reproducible.
Risk Impact on running containers, images, snapshots, networking or kubelet is evaluated.
Rollback Cleanup, rollback or read-only execution is documented.
bash
containerd --version 2>/dev/null || true
ctr version 2>/dev/null || true
ctr plugins ls 2>/dev/null || true
ctr namespaces ls 2>/dev/null || true
systemctl status containerd --no-pager 2>/dev/null || true
journalctl -u containerd -n 50 --no-pager 2>/dev/null || true

Practical notes for Observability:

  • containerd is the runtime core, not the full Docker developer experience.
  • ctr is close to the containerd API and mainly useful for debugging and low-level tests.
  • crictl speaks CRI and is useful for Kubernetes node diagnosis.
  • nerdctl provides friendlier workflows, but is not part of the containerd core.
  • Kubernetes objects typically live in the containerd namespace k8s.io.
  • Direct experiments should use a dedicated containerd namespace or remain static models.
  • Registry, CNI and runtime configuration are operational changes and need review.

Common failure modes:

Symptom Common cause Diagnosis
Images are not visible wrong namespace or missing pull ctr -n k8s.io images ls
Pull fails DNS, TLS, auth or registry mirror check hosts.toml, logs and resolver
Pod does not start CRI, CNI, snapshotter or runtime crictl ps -a, crictl inspect, journalctl
Container is running but ctr shows nothing wrong containerd namespace ctr namespaces ls
Disk fills up content, snapshots, leases or logs ctr content ls, ctr snapshots ls, ctr leases ls

Review questions:

  • Which containerd component is affected?
  • Which file, output or configuration supports the statement?
  • Is the topic about containerd directly, CRI, Kubernetes or an OCI layer?
  • Which change would be risky on a production node?
  • Which rollback or cleanup action is documented?
  • Which evidence must not contain secrets?

Submission format for Best Practices:

text
evidence/
  context.md
  containerd-version.txt
  config-review.txt
  command-output.txt
  risk-note.md
  cleanup.md
17 / 21

18. Operations

Operations is treated as a reviewable containerd building block in this workshop. The relevant point is not just a command, but its position in the daemon, API, plugin, snapshotter, runtime, CRI or Kubernetes node layer.

Review question Expectation
Layer The affected layer is named: ctr, nerdctl, crictl, CRI, OCI, CNI, registry or host.
Evidence Output, configuration or model artifact is reproducible.
Risk Impact on running containers, images, snapshots, networking or kubelet is evaluated.
Rollback Cleanup, rollback or read-only execution is documented.
bash
containerd --version 2>/dev/null || true
ctr version 2>/dev/null || true
ctr plugins ls 2>/dev/null || true
ctr namespaces ls 2>/dev/null || true
systemctl status containerd --no-pager 2>/dev/null || true
journalctl -u containerd -n 50 --no-pager 2>/dev/null || true

Practical notes for Operations:

  • containerd is the runtime core, not the full Docker developer experience.
  • ctr is close to the containerd API and mainly useful for debugging and low-level tests.
  • crictl speaks CRI and is useful for Kubernetes node diagnosis.
  • nerdctl provides friendlier workflows, but is not part of the containerd core.
  • Kubernetes objects typically live in the containerd namespace k8s.io.
  • Direct experiments should use a dedicated containerd namespace or remain static models.
  • Registry, CNI and runtime configuration are operational changes and need review.

Common failure modes:

Symptom Common cause Diagnosis
Images are not visible wrong namespace or missing pull ctr -n k8s.io images ls
Pull fails DNS, TLS, auth or registry mirror check hosts.toml, logs and resolver
Pod does not start CRI, CNI, snapshotter or runtime crictl ps -a, crictl inspect, journalctl
Container is running but ctr shows nothing wrong containerd namespace ctr namespaces ls
Disk fills up content, snapshots, leases or logs ctr content ls, ctr snapshots ls, ctr leases ls

Review questions:

  • Which containerd component is affected?
  • Which file, output or configuration supports the statement?
  • Is the topic about containerd directly, CRI, Kubernetes or an OCI layer?
  • Which change would be risky on a production node?
  • Which rollback or cleanup action is documented?
  • Which evidence must not contain secrets?

Submission format for Best Practices:

text
evidence/
  context.md
  containerd-version.txt
  config-review.txt
  command-output.txt
  risk-note.md
  cleanup.md
18 / 21

19. Review

Review is treated as a reviewable containerd building block in this workshop. The relevant point is not just a command, but its position in the daemon, API, plugin, snapshotter, runtime, CRI or Kubernetes node layer.

Review question Expectation
Layer The affected layer is named: ctr, nerdctl, crictl, CRI, OCI, CNI, registry or host.
Evidence Output, configuration or model artifact is reproducible.
Risk Impact on running containers, images, snapshots, networking or kubelet is evaluated.
Rollback Cleanup, rollback or read-only execution is documented.
bash
containerd --version 2>/dev/null || true
ctr version 2>/dev/null || true
ctr plugins ls 2>/dev/null || true
ctr namespaces ls 2>/dev/null || true
systemctl status containerd --no-pager 2>/dev/null || true
journalctl -u containerd -n 50 --no-pager 2>/dev/null || true

Practical notes for Review:

  • containerd is the runtime core, not the full Docker developer experience.
  • ctr is close to the containerd API and mainly useful for debugging and low-level tests.
  • crictl speaks CRI and is useful for Kubernetes node diagnosis.
  • nerdctl provides friendlier workflows, but is not part of the containerd core.
  • Kubernetes objects typically live in the containerd namespace k8s.io.
  • Direct experiments should use a dedicated containerd namespace or remain static models.
  • Registry, CNI and runtime configuration are operational changes and need review.

Common failure modes:

Symptom Common cause Diagnosis
Images are not visible wrong namespace or missing pull ctr -n k8s.io images ls
Pull fails DNS, TLS, auth or registry mirror check hosts.toml, logs and resolver
Pod does not start CRI, CNI, snapshotter or runtime crictl ps -a, crictl inspect, journalctl
Container is running but ctr shows nothing wrong containerd namespace ctr namespaces ls
Disk fills up content, snapshots, leases or logs ctr content ls, ctr snapshots ls, ctr leases ls

Review questions:

  • Which containerd component is affected?
  • Which file, output or configuration supports the statement?
  • Is the topic about containerd directly, CRI, Kubernetes or an OCI layer?
  • Which change would be risky on a production node?
  • Which rollback or cleanup action is documented?
  • Which evidence must not contain secrets?

Submission format for Best Practices:

text
evidence/
  context.md
  containerd-version.txt
  config-review.txt
  command-output.txt
  risk-note.md
  cleanup.md
19 / 21

Official Sources and Boundary

  • containerd documentation, getting started and configuration: https://containerd.io/docs/2.3/getting-started/
  • containerd registry hosts.toml: https://github.com/containerd/containerd/blob/main/docs/hosts.md
  • containerd runtime v2 and shim model: https://github.com/containerd/containerd/blob/main/docs/runtime-v2.md
  • Kubernetes container runtimes: https://kubernetes.io/docs/setup/production-environment/container-runtimes/
  • Kubernetes Container Runtime Interface: https://kubernetes.io/docs/concepts/containers/cri/
  • OCI Image Specification: https://github.com/opencontainers/image-spec
  • OCI Runtime Specification: https://github.com/opencontainers/runtime-spec
  • Open Container Initiative: https://opencontainers.org/

This workshop does not introduce a containerd API. It maps official concepts into labs, review questions and operational workflows. When a file describes a model, it is explicitly framed as a model or lab artifact.


20 / 21

Practice Appendix: containerd Evidence for this reference document

This appendix connects the file with repeatable runtime evidence. It is deliberately practical: every statement should map to a concrete layer, artifact, impact and operational decision.

A.1 Layer Model

containerd must be understood as runtime layer: host, systemd, containerd daemon, plugins, content store, snapshotter, runtime v2, shim, runc, CRI, CNI and Kubernetes all have different responsibilities.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to Layer Model.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.2 Daemon and Socket

The containerd daemon exposes a gRPC API through a Unix socket. Changes to the socket, permissions or service determine which tools and orchestrators can talk to the runtime.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to Daemon and Socket.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.3 Plugin System

containerd loads functionality through plugins. CRI, snapshotters, diff service, content service, runtime task service and image verification must be evaluated through the active plugins.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to Plugin System.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.4 Content Store

The content store keeps OCI content by digest. Tags are names; digests are content addresses. This separation is central for reproducibility and supply-chain review.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to Content Store.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.5 Snapshotter

Snapshotters create usable root filesystems from image layers. OverlayFS is the common default, while remote snapshotters such as Stargz or Nydus change startup time, IO behavior and failure modes.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to Snapshotter.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.6 Container and Task

A container is a metadata object; a task is the running execution. Many debugging mistakes come from mixing these two layers.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to Container and Task.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.7 Runtime v2 and Shim

containerd starts containers through runtime-v2 shims. The shim preserves IO, exit status and process relationship and partially decouples running tasks from the containerd daemon.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to Runtime v2 and Shim.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.8 OCI Runtime

runc or alternative runtimes implement the OCI Runtime Specification. They start the isolated process with namespaces, mounts, cgroups and security profiles.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to OCI Runtime.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.9 CRI

Kubernetes does not talk directly to ctr; it talks CRI. crictl is often better for node diagnosis, while ctr works deeper inside containerd.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to CRI.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.10 CNI

containerd is not the full Kubernetes network. During pod startup the CRI layer calls CNI plugins that configure network namespace, IPAM, routes and port mapping.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to CNI.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.11 Registry and Resolver

Registry behavior is controlled through resolver, host namespace and hosts.toml. Mirror, TLS, authentication and capabilities must be reviewed separately.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to Registry and Resolver.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.12 Cgroups and Systemd

On systemd hosts, kubelet and runtime should use a consistent systemd cgroup model. Mixed cgroup drivers lead to hard-to-debug node problems.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to Cgroups and Systemd.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.13 Namespaces

containerd namespaces are metadata namespaces, not Linux namespaces. Kubernetes typically uses k8s.io; direct ctr experiments should use dedicated namespaces.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to Namespaces.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.14 Rootless

Rootless containerd reduces some host risks, but has clear limits around networking, cgroups, storage and Kubernetes integration. Rootless is an operating model, not a blanket security promise.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to Rootless.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.15 Image Trust

Signatures, verification, SBOM and vulnerability scanning are supply-chain controls. They must be integrated before pull, before start or through admission and policy mechanisms.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to Image Trust.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.16 Security Profiles

Seccomp, AppArmor, SELinux, capabilities and RuntimeClass limit container behavior. These controls complement each other, but do not replace safe images or host hardening.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to Security Profiles.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.17 Garbage Collection

Garbage collection must not only look at free disk space. Content, snapshots, images, containers, tasks and leases must be evaluated together to avoid damaging active workloads.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to Garbage Collection.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.18 Observability

Good runtime diagnosis collects versions, service status, logs, events, plugins, namespaces, registry failures, snapshotter state and CRI output as one evidence package.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to Observability.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.19 Upgrade and Rollback

Runtime upgrades affect running workloads and Kubernetes nodes. A safe path includes backup, drain, version test, service restart, smoke test, rollback and post-change review.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to Upgrade and Rollback.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.20 Incident Response

Registry outage, TLS errors, pull rate limits, damaged snapshots or runtime failures need separate runbooks. An incident ends only when cause, workaround, fix and prevention are documented.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to Incident Response.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.21 Model and Reality

Many examples are safe models. Transfer to real nodes needs additional review: distribution, containerd version, Kubernetes version, CNI, registry, security policy and change process.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to Model and Reality.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.22 Evidence

Evidence contains command output, configuration, logs, hashes, versions and review notes. It does not contain production secrets, tokens, client certificates or pull credentials.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to Evidence.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.23 Performance

Performance depends on snapshotter, registry latency, layer structure, deduplication, filesystem, IO, CPU, cgroups and remote snapshotters. Every optimization needs a measurement goal.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to Performance.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.24 Production Transfer

Production transfer is not copying lab files. It needs ownership, change ticket, rollback, monitoring, security approval, maintenance window and documented acceptance criteria.

This perspective must become concrete in review. A generic sentence such as "check runtime" is not enough; expected evidence names the tool, file, risk and decision.

Review field Expectation
Context best-practices-containerd-EN.md names the relation to Production Transfer.
Evidence Command output, TOML, YAML, JSON, log or runbook exists.
Operational impact Impact on pods, images, snapshots, registry, network or node is described.
Security impact Secrets, privileges, runtime permissions and host boundaries are checked.

Concrete review questions:

  • Which runtime layer is affected?
  • Which file or output supports the statement?
  • Is the behavior containerd directly, CRI, OCI, CNI or Kubernetes?
  • Which change would be risky on a production node?
  • Which rollback option exists?
  • Which evidence must not contain secrets?
  • Which versions must be named?
  • Which acceptance check proves success?

Typical evidence:

text
evidence/
  tooling.txt
  runtime-layer.md
  config-or-model.txt
  risk-note.md
  rollback.md

A.25 Minimal Completion Evidence

  • containerd, ctr and runc versions are documented where installed.
  • Scope is clearly described as model, local host or Kubernetes node.
  • TOML, YAML, JSON and shell artifacts are syntactically validated.
  • Registry, runtime, snapshotter or CRI changes have a rollback note.
  • Evidence contains no production credentials.
  • Official sources are referenced and not replaced by invented assumptions.
21 / 21

CTR · Orthevs Academy

31 modules ως ενιαία διαδρομή μάθησης.

Η σειρά παραμένει αμετάβλητη: από τη βασική δομή του lab μέσω τεχνικών θεμελίων και λειτουργικών μοντέλων έως το τελικό troubleshooting. Τα τεχνικά ονόματα καταλόγων διατηρούνται σκόπιμα.

Orthevs – Η μηχανική ως βάση για όσα ακολουθούν.

Το Orthevs ως εφαρμογή

Εγκατάσταση του Orthevs

Η web app του Orthevs μπορεί να εγκατασταθεί σε υποστηριζόμενες κινητές συσκευές και browsers υπολογιστή.

iPhone και iPad

Ανοίξτε το Orthevs στο Safari. Πατήστε Κοινή χρήση και μετά Προσθήκη στην οθόνη αφετηρίας. Ενεργοποιήστε το Άνοιγμα ως web app, αν εμφανίζεται, και πατήστε Προσθήκη.

Android

Για τη web app, ανοίξτε το μενού του browser και επιλέξτε Εγκατάσταση εφαρμογής ή Προσθήκη στην αρχική οθόνη. Επιβεβαιώστε την εγκατάσταση.

Browser υπολογιστή

Ανοίξτε το μενού του browser ή το εικονίδιο εγκατάστασης στη γραμμή διευθύνσεων και επιλέξτε Εγκατάσταση εφαρμογής ή Προσθήκη στο Dock.

Η εγκατάσταση της web app εξαρτάται από τον browser. Αν δεν εμφανιστεί διάλογος εγκατάστασης, ακολουθήστε τα βήματα του browser που αναφέρονται παραπάνω.