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
|
Mike Conrad
|
||||||
|
|
||||||
- 📝 **Text-based** - focus on the content with Markdown, and then style them later
|
## 2 Truths and a lie
|
||||||
- 🎨 **Themable** - themes can be shared and re-used as npm packages
|
|
||||||
- 🧑💻 **Developer Friendly** - code highlighting, live coding with autocompletion
|
- I have 4 cats, 4 chickens, 2 goats, 2 kids, a wife and a dog
|
||||||
- 🤹 **Interactive** - embed Vue components to enhance your expressions
|
<br>
|
||||||
- 🎥 **Recording** - built-in recording and camera view
|
|
||||||
- 📤 **Portable** - export to PDF, PPTX, PNGs, or even a hostable SPA
|
- I went 7 years with a temporary crown after getting a root canal
|
||||||
- 🛠 **Hackable** - virtually anything that's possible on a webpage is possible in Slidev
|
<br>
|
||||||
<br>
|
|
||||||
|
- I was in hardcore/punk bands in my early 20's
|
||||||
<br>
|
<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.
|
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
|
## 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 />
|
||||||
<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 />
|
||||||
<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
|
transition: fade-out
|
||||||
layout: two-cols-header
|
layout: two-cols-header
|
||||||
@ -319,3 +400,30 @@ Commercial support is available at
|
|||||||
</html>
|
</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