From e8feab390ecef990729a2cd0d3e2ce69e3dc943f Mon Sep 17 00:00:00 2001 From: Casper Kristiansson Date: Wed, 2 Oct 2024 09:26:57 +0200 Subject: [PATCH 1/3] add README tutorial execution --- .../executable-tutorial/casperkr/README.md | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 contributions/executable-tutorial/casperkr/README.md diff --git a/contributions/executable-tutorial/casperkr/README.md b/contributions/executable-tutorial/casperkr/README.md new file mode 100644 index 0000000000..a2f5511c8d --- /dev/null +++ b/contributions/executable-tutorial/casperkr/README.md @@ -0,0 +1,24 @@ +# Assignment Proposal + +## Title + +Introduction to Docker: Building, Running, and Optimizing Containers with Multi-Stage Builds + +## Names and KTH ID + +- Casper Kristiansson (casperk@kth.se) + +## Deadline + +- Task 3 + +## Category + +- Executable tutorial + +## Description + +This tutorial will introduce the fundamental concepts of Docker and demonstrate how to build, run, and optimize Docker containers. The tutorial will be fully executable on the KillerKoda platform, ensuring that users can interact with and verify their actions as they follow along. The sections will cover building and running a basic Docker container, setting up Docker volumes for persistent storage, configuring container networking, automating Docker builds with local scripts, and optimizing Docker images with multi-stage builds for improved performance and reduced image size. + +**Relevance** +Docker is a crucial tool in modern DevOps practices, enabling efficient application deployment, scalability, and automation. By learning how to build, run, and optimize containers, developers and DevOps engineers can reduce infrastructure complexity, speed up deployments, and manage applications more effectively. The addition of automating Docker builds locally with a script simulates a CI/CD pipeline without needing external dependencies, making it easier to verify the process in a local environment. Multi-stage builds are essential for reducing Docker image size and improving performance in production environments, aligning with DevOps goals of continuous delivery and optimized resource use. From d2514cfe0bb71da23316474c517685d17a85d9e8 Mon Sep 17 00:00:00 2001 From: Casper Kristiansson Date: Thu, 3 Oct 2024 08:10:20 +0200 Subject: [PATCH 2/3] Add another student to project --- .../executable-tutorial/{casperkr => casperkr-mnem}/README.md | 1 + 1 file changed, 1 insertion(+) rename contributions/executable-tutorial/{casperkr => casperkr-mnem}/README.md (97%) diff --git a/contributions/executable-tutorial/casperkr/README.md b/contributions/executable-tutorial/casperkr-mnem/README.md similarity index 97% rename from contributions/executable-tutorial/casperkr/README.md rename to contributions/executable-tutorial/casperkr-mnem/README.md index a2f5511c8d..0514808c87 100644 --- a/contributions/executable-tutorial/casperkr/README.md +++ b/contributions/executable-tutorial/casperkr-mnem/README.md @@ -7,6 +7,7 @@ Introduction to Docker: Building, Running, and Optimizing Containers with Multi- ## Names and KTH ID - Casper Kristiansson (casperk@kth.se) +- Muhammadsodiq Nematjanov (mnem@kth.se) ## Deadline From 00c0ab4769cbb0285dc617abbfd4432562fc2919 Mon Sep 17 00:00:00 2001 From: Casper Kristiansson Date: Mon, 7 Oct 2024 12:50:33 +0200 Subject: [PATCH 3/3] Add extra features to the tutorial --- .../casperkr-mnem/README.md | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/contributions/executable-tutorial/casperkr-mnem/README.md b/contributions/executable-tutorial/casperkr-mnem/README.md index 0514808c87..668f38e992 100644 --- a/contributions/executable-tutorial/casperkr-mnem/README.md +++ b/contributions/executable-tutorial/casperkr-mnem/README.md @@ -2,7 +2,7 @@ ## Title -Introduction to Docker: Building, Running, and Optimizing Containers with Multi-Stage Builds +Mastering Docker: Building, Networking, and Optimizing Containers with Multi-Stage Builds and Advanced Features ## Names and KTH ID @@ -19,7 +19,22 @@ Introduction to Docker: Building, Running, and Optimizing Containers with Multi- ## Description -This tutorial will introduce the fundamental concepts of Docker and demonstrate how to build, run, and optimize Docker containers. The tutorial will be fully executable on the KillerKoda platform, ensuring that users can interact with and verify their actions as they follow along. The sections will cover building and running a basic Docker container, setting up Docker volumes for persistent storage, configuring container networking, automating Docker builds with local scripts, and optimizing Docker images with multi-stage builds for improved performance and reduced image size. +This tutorial will introduce the fundamental concepts of Docker and demonstrate how to build, run, and optimize Docker containers. The tutorial will be fully executable on the KillerKoda platform, ensuring that users can interact with and verify their actions as they follow along. The sections will cover: + +1. **Building and Running a Basic Docker Container**: A step-by-step guide to building and running your first Docker container. + +2. **Setting up Docker Volumes for Persistent Storage**: Learn how to manage data persistence by setting up Docker volumes. + +3. **Configuring Container Networking**: Understand how to set up communication between Docker containers through networking. + +4. **Optimizing Docker Images with Multi-Stage Builds**: Learn how to reduce Docker image sizes and improve performance using multi-stage builds. + +5. **Using Docker Compose for Multi-Container Applications**: Introduction to Docker Compose, showing how to define and manage multi-container applications with services, networks, and volumes. + +6. **Handling Secrets and Environment Variables in Docker**: Securely pass sensitive information using Docker secrets and environment variables. + +7. **Implementing Health Checks for Containers**: Monitor and automatically restart services by implementing health checks within your containers. **Relevance** -Docker is a crucial tool in modern DevOps practices, enabling efficient application deployment, scalability, and automation. By learning how to build, run, and optimize containers, developers and DevOps engineers can reduce infrastructure complexity, speed up deployments, and manage applications more effectively. The addition of automating Docker builds locally with a script simulates a CI/CD pipeline without needing external dependencies, making it easier to verify the process in a local environment. Multi-stage builds are essential for reducing Docker image size and improving performance in production environments, aligning with DevOps goals of continuous delivery and optimized resource use. + +Docker is a crucial tool in modern DevOps practices, enabling efficient application deployment, scalability, and automation. By learning how to build, run, and optimize containers, developers and DevOps engineers can reduce infrastructure complexity, speed up deployments, and manage applications more effectively. The tutorial covers essential topics that align with DevOps goals of continuous delivery, resource optimization, and maintaining secure, persistent services. Each section is designed to be fully executable and verifiable on the KillerKoda platform, providing a hands-on experience for learners. Automating Docker builds locally simulates a CI/CD pipeline without external dependencies, making the process easy to verify. Additionally, multi-stage builds are essential for reducing Docker image size, improving performance, and optimizing resource use in production environments.