Added a bunch of content
This commit is contained in:
130
slides.md
130
slides.md
@ -54,17 +54,17 @@ transition: fade-out
|
||||
|
||||
Mike Conrad
|
||||
|
||||
- 📝 **Text-based** - focus on the content with Markdown, and then style them later
|
||||
- 🎨 **Themable** - themes can be shared and re-used as npm packages
|
||||
- 🧑💻 **Developer Friendly** - code highlighting, live coding with autocompletion
|
||||
- 🤹 **Interactive** - embed Vue components to enhance your expressions
|
||||
- 🎥 **Recording** - built-in recording and camera view
|
||||
- 📤 **Portable** - export to PDF, PPTX, PNGs, or even a hostable SPA
|
||||
- 🛠 **Hackable** - virtually anything that's possible on a webpage is possible in Slidev
|
||||
<br>
|
||||
## 2 Truths and a lie
|
||||
|
||||
- I have 4 cats, 4 chickens, 2 goats, 2 kids, a wife and a dog
|
||||
<br>
|
||||
|
||||
- I went 7 years with a temporary crown after getting a root canal
|
||||
<br>
|
||||
|
||||
- I was in hardcore/punk bands in my early 20's
|
||||
<br>
|
||||
|
||||
Read more about [Why Slidev?](https://sli.dev/guide/why)
|
||||
|
||||
<!--
|
||||
You can have `style` tag in markdown to override the style for the current page.
|
||||
@ -175,7 +175,7 @@ transition: fade-out
|
||||
|
||||
## Containers are just processes
|
||||
|
||||
If you don't take anything else away from this talk, I hope you walk away with a better understanding of this fundamental. As far as the OS* is concerned, a container is just another process/set of processes to the operating system.
|
||||
If you don't take anything else away from this talk, I hope you walk away with a better understanding of this fundamental. As far as the OS is concerned, a container is just another process/set of processes to the operating system.
|
||||
|
||||
<br />
|
||||
<br />
|
||||
@ -185,7 +185,88 @@ If you don't take anything else away from this talk, I hope you walk away with a
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<p style="font-size:10px;max-width:20vw;line-height:1.3em;">*This is only strictly true on Linux. Running Docker on Mac/Windows requires Docker Desktop which actually creates and manages a Linux VM. Your containers actually run inside of this VM.</p>
|
||||
---
|
||||
transition: fade-out
|
||||
---
|
||||
|
||||
# Container runtimes vs. container engines
|
||||
> While a container runtime is responsible for running containers, a container engine is a broader system that manages even more of the life cycle of containers, including image distribution, container orchestration, and runtime management.
|
||||
|
||||
> One common misconception is that Docker and container runtimes are the same. While Docker Engine includes a container runtime, it also offers a suite of tools for building, shipping, and running containerized applications, making it much more than just a runtime. [source wiz.io](https://www.wiz.io/academy/container-runtimes)
|
||||
|
||||
|
||||
---
|
||||
transition: fade-out
|
||||
---
|
||||
|
||||
# Docker: Runtime or engine?!?
|
||||
Docker Engine uses containerd for managing the container lifecycle, which includes creating, starting, and stopping containers. By default, containerd uses runc as its container runtime.
|
||||
|
||||
<br/>
|
||||
|
||||
## Wait, aren't they all runtimes? If docker engine uses containerd and containerd uses runc, whats the deal?
|
||||
|
||||
<br >
|
||||
<small><em>**Chatgpt generated content below</em></small>
|
||||
|
||||
### 🔧 High-Level Definitions
|
||||
|
||||
- Runtime = Low-level component that actually creates and runs containers.
|
||||
|
||||
- Engine = Higher-level component that manages the full container lifecycle (build, run, network, volume, etc.) and talks to the runtime.
|
||||
|
||||
---
|
||||
transition: fade-out
|
||||
---
|
||||
|
||||
# Breakdown
|
||||
|
||||
Docker CLI & Docker API rely on Docker Engine under the hood
|
||||
-> Docker Engine is an engine (High level functionality like managing networking, images, registries, etc)
|
||||
-> Docker Engine relies on `containerd` runtime to manage lifecyle of containers
|
||||
-> `containerd` uses `runc` as the runtime to run containers
|
||||
|
||||
## Super clear?!
|
||||
The `engine` is the higher level component responsible for orchestration and lifecycle management.
|
||||
|
||||
The `runtime` is a component responsible for the low level process execution/isolation.
|
||||
---
|
||||
transition: fade-out
|
||||
---
|
||||
|
||||
# Popular Runtimes
|
||||
|
||||
## - [containerd](https://containerd.io/): An industry-standard container runtime with an emphasis on simplicity, robustness and portability. <span style="font-size:12px;font-style:italic;">CNCF Graduated Project. Default runtime used by Docker Engine. By default, containerd uses runc as its container runtime.</span>
|
||||
## -[cri-o](https://cri-o.io/): Lightweight container runtime for Kubernetes. <span style="font-size:12px;font-style:italic;"> CNCF Graduated Project</span>
|
||||
## - [runc](https://github.com/opencontainers/runc): CLI tool for spawning and running containers on Linux according to the OCI specification. <span style="font-size:12px;font-style:italic;">Open Container Initiative</span>
|
||||
|
||||
---
|
||||
transition: fade-out
|
||||
---
|
||||
|
||||
# What is Docker Desktop?
|
||||
Docker Desktop is an integrated container development environment for Windows and macOS. It's a packaged product that includes several components:
|
||||
|
||||
| Component | Description |
|
||||
| ------------------------------ | --------------------------------------------------------------------------- |
|
||||
| **Docker Engine** | The actual engine that runs and manages containers. |
|
||||
| **containerd** + **runc** | The container runtime stack used by Docker Engine. |
|
||||
| **VM (e.g. `docker-desktop`)** | On macOS and Windows, Linux containers need to run inside a lightweight VM. |
|
||||
| **Docker CLI** | Command-line tool to interact with Docker Engine. |
|
||||
| **Docker Compose** | Tool for defining and running multi-container apps. |
|
||||
| **GUI** | Visual interface for managing containers, volumes, settings, etc. |
|
||||
| **Kubernetes** (optional) | Comes with optional single-node K8s cluster for testing. |
|
||||
| **Networking components** | Manages host-to-VM and container networking. |
|
||||
|
||||
---
|
||||
transition: fade-out
|
||||
---
|
||||
|
||||
# Alternatives to Docker
|
||||
- Podman
|
||||
- Firecracker - AWS
|
||||
- LXC/LXD - Canonical (Ubuntu)
|
||||
- Buildah - Redhat
|
||||
---
|
||||
transition: fade-out
|
||||
layout: two-cols-header
|
||||
@ -319,3 +400,30 @@ Commercial support is available at
|
||||
</html>
|
||||
```
|
||||
````
|
||||
---
|
||||
transition:fade-out
|
||||
---
|
||||
|
||||
## Topics
|
||||
- `docker events`
|
||||
- `docker exec`
|
||||
- `docker logs`
|
||||
- `docker container logs --filter name=[regexmatch]`
|
||||
- ENTRYPOINT vs CMD in Dockerfile
|
||||
- Multistage Dockerfile
|
||||
- Layer caching
|
||||
- Networking between containers and with host
|
||||
- Containers are just processes
|
||||
- Debugging containers by attaching to namespaces
|
||||
- Docker compose
|
||||
- Example of frontend/backend/database/proxy
|
||||
- EnvironmentPerPr
|
||||
- Docker swarm
|
||||
- Setting up logging properly
|
||||
- Tagging images
|
||||
- Security
|
||||
- Optimizing images
|
||||
- What are containers?
|
||||
- What is Docker (set of tooling to make things easier)
|
||||
- Difference between runtimes
|
||||
- git clone https://github.com/docker/getting-started-todo-app
|
||||
|
Reference in New Issue
Block a user