Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Mohamed-abdalazez authored Dec 2, 2023
1 parent 7b705b8 commit 023f129
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,3 +121,18 @@

<img alt="Docker EngineI" src="assets/10.png" />
<img alt="Docker EngineII" src="assets/11.png" />

- runc
- For each running container, containerd creates a process called runc.
- runc is responsible for anything related to this container such as starting, stopping, pausing, and more.
- shim
- The shim acts as a bridge between the container runtime "containerd" and the actual container process "managed by runc".
- It stays around even after the main container tool (like runc) has finished its job.How??
- runc s responsible for starting the container process and managing the low-level details of container execution.
- Once the container process is up and running, runc's primary role is considered done.
- the shim doesn't terminate immediately after runc has finished its primary tasks. Instead, it remains active in the background
- Ensures that communication channels, such as STDIN and STDOUT streams, remain open between the container and the outside world.
- Reports back to the container manager (e.g., containerd) to keep it informed about the status and health of the container.
- So, this model achieves a ```loosely coupled architecture```.
- Separating the container runtime from the Docker daemon, allowing each component to perform its specialized functions.```daemonless containers```
- Since the container runtime is not coupled with the Docker daemon, you can perform maintenance tasks such as ```upgrades``` or ```restarts``` on the Docker daemon without affecting the running containers managed by the container runtime.

0 comments on commit 023f129

Please sign in to comment.