Basado en Docker components explained de Alexander Holbreich y What's the difference between RunC, Containerd and Docker de Alena Varkockova
Ver también [2014-presente] Kubernetes
Docker and Broad Industry Coalition Unite to Create Open Container Project
“Esta mañana, Docker, junto con una amplia coalición de proveedores, usuarios, nuevas empresas y líderes de la industria, hizo uno de los [anuncios] más importantes en la historia de la tecnología de contenedores. En resumen, nos unimos para formar un proyecto minimalista, sin ánimo de lucro, abiertamente gobernado, The Open Container Project, bajo los auspicios de la Fundación Linux con el expreso propósito de definir especificaciones comunes sobre el formato de contenedor y el tiempo de ejecución. Docker donará nuestro formato de contenedor base y tiempo de ejecución, runC, a este proyecto, para ayudar a formar la piedra angular de la nueva tecnología. Y, en un desarrollo reciente particularmente emocionante, las personas talentosas detrás de appc ahora se unen a nosotros como cofundadores.”
https://docs.docker.com/engine/reference/commandline/cli/
docker: the base command for the Docker CLI.
docker attach Attach local standard input, output, and error streams to a running container docker build Build an image from a Dockerfile docker builder Manage builds docker checkpoint Manage checkpoints docker commit Create a new image from a container’s changes docker config Manage Docker configs docker container Manage containers docker context Manage contexts docker cp Copy files/folders between a container and the local filesystem docker create Create a new container docker deploy Deploy a new stack or update an existing stack docker diff Inspect changes to files or directories on a container’s filesystem docker engine Manage the docker engine docker events Get real time events from the server docker exec Run a command in a running container docker export Export a container’s filesystem as a tar archive docker history Show the history of an image docker image Manage images docker images List images docker import Import the contents from a tarball to create a filesystem image docker info Display system-wide information docker inspect Return low-level information on Docker objects docker kill Kill one or more running containers docker load Load an image from a tar archive or STDIN docker login Log in to a Docker registry docker logout Log out from a Docker registry docker logs Fetch the logs of a container docker manifest Manage Docker image manifests and manifest lists docker network Manage networks docker node Manage Swarm nodes docker pause Pause all processes within one or more containers docker plugin Manage plugins docker port List port mappings or a specific mapping for the container docker ps List containers docker pull Pull an image or a repository from a registry docker push Push an image or a repository to a registry docker rename Rename a container docker restart Restart one or more containers docker rm Remove one or more containers docker rmi Remove one or more images docker run Run a command in a new container docker save Save one or more images to a tar archive (streamed to STDOUT by default) docker search Search the Docker Hub for images docker secret Manage Docker secrets docker service Manage services docker stack Manage Docker stacks docker start Start one or more stopped containers docker stats Display a live stream of container(s) resource usage statistics docker stop Stop one or more running containers docker swarm Manage Swarm docker system Manage Docker docker tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE docker top Display the running processes of a container docker trust Manage trust on Docker images docker unpause Unpause all processes within one or more containers docker update Update configuration of one or more containers docker version Show the Docker version information docker volume Manage volumes docker wait Block until one or more containers stop, then print their exit codes
https://docs.docker.com/engine/reference/commandline/dockerd/
A self-sufficient runtime for containers.
dockerd is the persistent process that manages containers. Docker uses different binaries for the daemon and client. To run the daemon you type dockerd.
Containerd: a daemon to control runC
Containerd is built on top of the Open Container Initiative’s runC and specification. Containerd is a daemon providing a GRPC API to manage containers on the local system. Containerd leverages runC to provide advanced functionality like checkpoint and restore, seccomp, and user namespace support which will open the door for these features into Docker.
Containerd is built for ops and optimized for performance.
containerd-ctr - Una CLI liviana para comunicarse directamente con containerd. Piense en ello como cómo 'docker' es 'dockerd'.
¿Qué es un “shim” (cuña)? https://en.wikipedia.org/wiki/Shim_(computing)
containerd-shim - Después de que runC realmente ejecuta el contenedor, se cierra (lo que nos permite no tener ningún proceso de larga duración responsable de nuestros contenedores). Shim es el componente que se encuentra entre containerd y runc para facilitar esto.
the path Docker began down back in 2014, when they open-sourced libcontainer (now known as runC).
Basado en collabnix/dockerlabs