--- # You can also start simply with 'default' theme: seriph # random image from a curated Unsplash collection by Anthony # like them? see https://unsplash.com/collections/94734566/slidev background: https://cover.sli.dev # some information about your slides (markdown enabled) title: Welcome to Slidev info: | ## Slidev Starter Template Presentation slides for developers. Learn more at [Sli.dev](https://sli.dev) # apply unocss classes to the current slide class: text-center # https://sli.dev/features/drawing drawings: persist: false # slide transition: https://sli.dev/guide/animations.html#slide-transitions transition: slide-left # enable MDC Syntax: https://sli.dev/features/mdc mdc: true # open graph # seoMeta: # ogImage: https://cover.sli.dev --- # Demystifying Docker A beginners guide to containerization and beyond
Press Space for next page
--- transition: fade-out --- # Who am I? 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

Read more about [Why Slidev?](https://sli.dev/guide/why) --- transition: slide-up level: 2 --- # What is a container? > A method for packaging and securely running an application within an application virtualization environment. Also known as an application container or a server application container. [NIST](https://csrc.nist.gov/glossary/term/container)

> A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another. A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings. [Docker](https://www.docker.com/resources/what-container/) --- layout: two-cols layoutClass: gap-16 --- # Problems? - ๐Ÿ“ **It works on my machine?!?!** - Code behaves differently in development, testing, and production due to differences in environment (OS, dependencies, configurations). - ๐ŸŽจ **Dependency conflicts** - Different applications require conflicting versions of the same dependency (e.g., Python 2 vs 3, different Node versions). - ๐Ÿง‘โ€๐Ÿ’ป **Slow and error-prone deployments** - Traditional deployments involve manual steps or configuration drift between environments. ::right:: # Solutions - Containers package the application and its dependencies in a consistent, isolated environment, ensuring it behaves the same everywhere. - Containers isolate applications and their dependencies from each other and the host system, preventing conflicts. - Containers provide predictable, repeatable, and scriptable deployments through container images. --- transition: slide-right layout: two-cols layoutClass: gap-16 --- # Problems? - ๐Ÿ“ **Inefficient resource usage in virtual machines (VMs)** - VMs have high overhead due to running full operating systems, leading to inefficiency. - ๐ŸŽจ **Difficult scalability and orchestration** - Scaling applications manually is hard and error-prone. - ๐Ÿง‘โ€๐Ÿ’ป **Inconsistent development workflows** - devs all have different setups, leading to inconsistent builds and bugs. ::right:: # Solutions - Containers share the host OS kernel and are more lightweight, enabling faster startup and denser packing of applications. - Containers integrate well with orchestrators (like Kubernetes), enabling automated scaling, rolling updates, and fault tolerance. - Containers standardize development environments using tools like Docker Compose or dev containers. ---