Which components inside docker can be replaced or run separately?

standard docker distro has these components:

  • docker cli(tool) on my local pc, translates docker cmds to rest api requests.
  • docker host that accepts restful api requests and has docker engine->containerd-> runc/runv/runhcs/crun.

About interfaces:

  • high level runtime can be any CRI-compliant runtime - containerd or cri-o.

  • low level runtime can be any OCI-compliant runtime - runc/youki/crun/kata runtime/gvisor etc.

Docker cli, docker engine general diagram:


do components like containerd and runc always go together? replacing containerd also automatically replaces runc? or can one change containerd and keep runc or change runc but keep using containerd?

what is the dependency relation between containerd and runc? they are both replaceable to each other? as long as boht high level runtime(containerd) or low level (runc, crun,runv) adhere to OCI standards - they are replaceable to each other?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.