Free Download The Complete Docker And Kubernetes Course From Zero To Hero
Published 10/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 21.07 GB | Duration: 32h 39m
30+ hours of content and 130+ hands-on labs for you to master working with Docker, Kubernetes, and Kustomize!
What you'll learn
Master the Fundamentals of Docker and Containerization Technologies
Gain Practical Experience with Docker CLI and Container Lifecycle Management
Build, Customize, and Manage Docker Images Using Dockerfiles and Registries
Dive Deep into Advanced Image Creation Techniques and Optimization Strategies
Implement Robust Data Persistence and Storage Solutions with Docker Volumes
Orchestrate Complex Multi-Container Applications Using Docker Compose
Master Kubernetes Fundamentals and Core Architecture
Gain Practical Experience with Kubernetes Objects and the kubectl CLI
Deploy, Scale, and Update Applications Using ReplicaSets and Deployments
Implement Advanced Resource Management and Application Health Monitoring
Manage Persistent Storage and Stateful Applications with Kubernetes
Enhance Security and Automate Configuration Management in Kubernetes
Leverage Kustomize to Manage Multiple Kubernetes Environments
Explore Google Kubernetes Engine by Deploying and Running a Fully-Fledged Application in a GKE Cluster
Requirements
Familiarity with any programming language is highly desirable to make the most of this course
Familiarity with running commands in the terminal and the command line
Description
Welcome to Docker and Kubernetes for Beginners: From Zero to Hero! Are you ready to dive into the world of containerization and orchestration with the industry's leading tools? This course is designed to take you from a beginner to a proficient practitioner, equipping you with an in-depth understanding of Docker and Kubernetes concepts.Why Learn Docker and Kubernetes?Docker and Kubernetes have revolutionized the way we develop, deploy, and manage applications in modern architectures. Here's why learning these technologies is essential:Gain Highly Demanded Skills: Docker and Kubernetes are everywhere, and companies need people who can work effectively with these tools! By learning them, you'll make yourself more attractive to employers in the tech industry and enhance your career prospects for promotions, new job opportunities, and potentially higher salaries. You'll stand out in the job market!Improve and Streamline the Development Process: Docker enables you to package applications with all their dependencies into isolated and portable containers, ensuring consistency across development, testing, and production environments.Master Application Deployment, Scaling and Management: Kubernetes will enable you to deploy, manage, and scale applications automatically, making complex tasks such as rolling out new application versions and managing advanced system architectures much simpler.Learn Versatile Tools: Docker and Kubernetes are platform-agnostic, which means that your knowledge will be valuable and applicable independently of which platform you are using to run them! Whether it's on-premises, on AWS, GCP, or Azure, knowing how to work effectively with Docker and Kubernetes will make you a great contributor to your projects!By investing time in learning Docker and Kubernetes, you're not just adding tools to your toolbox-you're enhancing your professional value, opening doors to new opportunities, and equipping yourself with skills that will serve you throughout your career!Why Should You Choose This Course?This course offers a unique blend of theoretical knowledge and practical application, providing a comprehensive understanding of Docker and Kubernetes. Here's why you should include this course in your learning journey:Learn by Doing with Hands-On Exercises: I truly believe in the power of learning by doing. I've not only crafted more than 100 hands-on lectures for you to practice what we discuss, I've also included all of them as written exercise guidelines for you to try and experiment as much as you want before watching the solution recordings! The exercises build on each other and increase gradually in complexity, deepening your understanding and skills while discussing relevant topics of working with Docker and Kubernetes!Comprehensive, Real-World Projects: We'll also go beyond individual hands-on exercises on Docker and Kubernetes, and we'll practice deploying entire applications by going through the entire cycle of coding, building, publishing, and running them!Go Beyond the Purely Technical Points: I place a strong focus on going beyond the "this is how you do it", copy-paste approach. My genuine interest is to teach you how these tools work behind the scenes, how you reason about their behavior, how you debug common issues and situations, and how you make the best use of them in your day-to-day.Real-World Kubernetes Experience with Google Cloud: Our final project is to deploy our application to a managed Kubernetes cluster in Google Cloud. This will give you hands-on experience not only with Docker and Kubernetes, but also with how these tools behave in a managed, real-world setup like Google Kubernetes Engine (GKE).Expert Guidance: I bring several years of experience as a Senior DevOps Engineer, Infrastructure Consultant, and IT trainer within one of the leading IT consulting companies worldwide, and I'm super excited to share my knowledge with you!Which Skills Will You Acquire During This Course?As you go through this course, you will gain a comprehensive and valuable set of skills, including:Creating and Distributing Docker Images: you will learn how to build, customize, optimize, and distribute Docker images using best practices. Running and Managing Containers: you will learn the many aspects related to running containers using Docker, Compose, and Kubernetes, and you will gradually understand how these tools fit together and tackle challenges at different levels of running and managing software applications.Docker Networking and Security Essentials: you will gain a solid foundation on security aspects related to running containers, as well as how to connect containers together using multiple networking solutions.Understanding the Kubernetes Architecture: you will gain a deep and solid understanding of the different components of a Kubernetes cluster, their functions, and how they interact together to deliver this amazing system.Running Applications, Persisting Data, and Managing Resources in Kubernetes: this course takes a deep dive into the many objects Kubernetes offers to run applications, both stateless and stateful, as well as into multiple dimensions of managing compute resources and Kubernetes objects effectively.Kubernetes Security Fundamentals: you will acquire a strong sense of why security is important in Kubernetes, and the many areas where security plays a role in our applications. We will also take a deeper dive into how to set Role-Based Access Control (RBAC) rules, network policies, and pod security standards to ensure your workloads have an additional layer of security.Working with Managed Kubernetes Clusters: you will go through the entire process of creating a cloud account with Google Cloud, all the way to having your applications up and running in a Kubernetes cluster and reachable from the internet securely! This will give you a thorough understanding of how managed Kubernetes services make our lives as developers much easier by integrating multiple services from cloud providers.Get ready to elevate your career with our Docker and Kubernetes for Beginners: From Zero to Hero course. Let's start this exciting journey together!
Overview
Section 1: Course Introduction
Lecture 1 Welcome and motivation!
Lecture 2 How to make best use of this course
Lecture 3 Aligning expectations
Lecture 4 Course resources
Section 2:[Docker] Introduction to Containers
Lecture 5 Section Introduction
Lecture 6 Why Using Containers?
Lecture 7 Containers and Virtual Machines (VMs)
Lecture 8 Docker Architecture and Components
Section 3:[Docker] Installing Docker and Necessary Tools
Lecture 9 Section Introduction
Lecture 10[MacOS Users] Installing Docker on MacOS
Lecture 11[Linux Users] Installing Docker on Linux
Lecture 12[Linux Users] Running Docker without Sudo
Lecture 13[Windows Users] Installing Windows Subsystem for Linux (WSL)
Lecture 14[Windows Users] Windows Subsystem for Linux Features
Lecture 15[Windows Users] Installing Docker in Windows
Lecture 16[Windows Users] Using Docker in Windows Subsystem for Linux (WSL)
Lecture 17 Exploring Play with Docker
Lecture 18 Installing NodeJS
Lecture 19 Installing Postman
Lecture 20 Installing Visual Studio Code
Section 4:[Docker] Running Containers with Docker
Lecture 21 Section Introduction
Lecture 22 Hands-On: Running Your First Container
Lecture 23 The Container Lifecycle
Lecture 24 Hands-On: Working with the Docker CLI - Part 1
Lecture 25 Hands-On: Working with the Docker CLI - Part 2
Lecture 26 Hands-On: Getting Help in the Docker CLI
Section 5:[Docker] Project - Customizing NGINX Containers
Lecture 27 Project Overview
Lecture 28 Running NGINX Containers
Lecture 29 Modifying the Contents of Our NGINX Container
Lecture 30 Project Conclusion
Section 6:[Docker] Introduction to Docker Images
Lecture 31 Section Introduction
Lecture 32 What Are Docker Images?
Lecture 33 Container Registries
Lecture 34 Hands-On: Introduction to DockerHub
Lecture 35 Hands-On: Logging Into DockerHub in the Docker CLI
Lecture 36 Hands-On: Managing Images with the Docker CLI
Lecture 37 Introduction to Dockerfiles
Lecture 38 Hands-On: Creating Our First Dockerfile for Nginx
Lecture 39 Hands-On: Copying Local Files Into Our Image
Lecture 40 Hands-On: Images vs. Containers
Section 7:[Docker] Project - Containerize an Express App
Lecture 41 Project Introduction
Lecture 42 Create a Hello World Express App
Lecture 43 Save and Return Users in Memory
Lecture 44 Test Users App
Lecture 45 Dockerize Our Express App
Lecture 46 Explore Interacting with Containers + Project Cleanup
Section 8:[Docker] Images Deep Dive
Lecture 47 Section Introduction
Lecture 48 Hands-On: Docker's Layered Architecture
Lecture 49 Hands-On: Build Contexts
Lecture 50 Hands-On: Skipping files with Dockerignore
Lecture 51 Hands-On: Introduction to Environment Variables
Lecture 52 Hands-On: Setting Environment Variables via the CLI
Lecture 53 Hands-On: Setting Environment Variables via Files
Lecture 54 Hands-On: CMD vs. ENTRYPOINT
Lecture 55 Introduction to Distroless Images
Lecture 56 Hands-On: Motivation to Multistage Dockerfiles
Lecture 57 Hands-On: Multistage Dockerfiles and Distroless Images
Lecture 58 Hands-On: Adding Typescript to Our Express App
Lecture 59 Hands-On: Update Dockerfile to Transpile Typescript Code
Lecture 60 Hands-On: Optimizing Images - The Role of Base Images
Lecture 61 Hands-On: Optimizing Images - The Role of Instruction Order
Lecture 62 Hands-On: Optimizing Images - The Role of Dependencies
Lecture 63 Hands-On: Revisiting and Optimizing Our Typescript Dockerfile
Section 9:[Docker] Project - Containerize React App
Lecture 64 Project Introduction
Lecture 65 Initializing the React App
Lecture 66 Build and Serve the React App
Lecture 67 Create a Dockerfile for Our React App - Part 1
Lecture 68 Create a Dockerfile for Our React App - Part 2
Section 10:[Docker] Volumes and Data Persistence
Lecture 69 Section Introduction
Lecture 70 Hands-On: Why Do We Need Volumes?
Lecture 71 Introduction to Volumes
Lecture 72 Hands-On: Bind Mounts
Lecture 73 Hands-On: Named Volumes
Lecture 74 Hands-On: Managing Volumes with the CLI
Section 11:[Docker] Advanced Topics - Resource Management, Restart Policies, and Networking
Lecture 75 Section Introduction
Lecture 76 Hands-On: Setting CPU Limits for Containers
Lecture 77 Hands-On: Setting Memory Limits for Containers
Lecture 78 Hands-On: Restart Policies
Lecture 79 Introduction to Networking in Docker
Lecture 80 Hands-On: The Default Bridge Network
Lecture 81 Hands-On: User-Defined Networks
Lecture 82 Hands-On: The Host Network
Section 12:[Docker] Project - Code and Deploy a Key-Value App with Data Persistence
Lecture 83 Project Introduction
Lecture 84 Running a MongoDB Server
Lecture 85 Adding Root Credentials to MongoDB
Lecture 86 Adding Credentials for the Key-Value Database
Lecture 87 Defining Ports, Volumes, and Networks
Lecture 88 Improving the Structure of Our Utility Scripts
Lecture 89 Setting Up the Express App
Lecture 90 Dockerizing the Express App
Lecture 91 Create Scripts to Initialize the Backend Container
Lecture 92 Adding Hot Reloading with Nodemon
Lecture 93 Defining the API Routes
Lecture 94 Creating and Getting Key-Value Pairs
Lecture 95 Updating and Deleting Key-Value Pairs
Lecture 96 Testing the Application and Final Cleanup
Section 13:[Docker] Docker Compose
Lecture 97 Section Introduction
Lecture 98 Docker Compose Overview
Lecture 99 Docker-Compose vs. Compose CLI Commands
Lecture 100 Hands-On: Run MongoDB with Docker Compose
Lecture 101 Hands-On: Environment Variables in Docker Compose
Lecture 102 Hands-On: Bind Mounts in Docker Compose
Lecture 103 Hands-On: Volumes and Networks in Docker Compose
Lecture 104 Hands-On: Adding a Backend Service to Our Docker Compose File
Lecture 105 Hands-On: Service Dependencies in Docker Compose
Lecture 106 Hands-On: Hot Reloading and Watching for Changes
Lecture 107 Hands-On: Docker Compose CLI
Lecture 108 Hands-On: Getting Help with Docker Compose CLI
Section 14:[Docker] Project - Code and Deploy a Notes App with Docker Compose
Lecture 109 Project Introduction
Lecture 110 Setup NPM Projects
Lecture 111 Dockerize the Notebooks Backend
Lecture 112 Setup Docker Compose for Notebooks Services
Lecture 113 Setup Docker Compose for Notes Services
Lecture 114 Use Multistage Builds for Our Images
Lecture 115 Merging Multiple Projects in Docker Compose
Lecture 116 Implement the NGINX Reverse Proxy
Lecture 117 Establish the Connections between Services
Lecture 118 Setup Models and Routes for the Notebooks Service
Lecture 119 Implement Routes to Create and Retrieve Notebooks
Lecture 120 Implement Routes to Update and Delete Notebooks
Lecture 121 Code Refactorings
Lecture 122 Implement Routes and Business Logic in the Notes Backend
Lecture 123 Storing Notebook IDs in the Notes Service - Part 1
Lecture 124 Storing Notebook IDs in the Notes Service - Part 2
Lecture 125 Storing Notebook IDs in the Notes Service - Part 3
Section 15:[Kubernetes] 10.000-Foot Overview
Lecture 126 Section Introduction
Lecture 127 Why Use Kubernetes?
Lecture 128 What Is Kubernetes?
Lecture 129 Kubernetes Architecture
Lecture 130 The Control Plane
Lecture 131 The Data Plane
Lecture 132 The kubectl CLI
Section 16:[Kubernetes] Installing Tools
Lecture 133[MacOS Users] Installing Kubectl in MacOS
Lecture 134[MacOS Users] Installing Minikube in MacOS
Lecture 135[Linux Users] Installing Kubectl in Linux
Lecture 136[Linux Users] Installing Minikube in Linux
Lecture 137[Windows Users] Installing Kubectl in Windows Subsystem for Linux (WSL)
Lecture 138[Windows Users] Installing Minikube in Windows Subsystem for Linux (WSL)
Section 17:[Kubernetes] Running Containers in Kubernetes
Lecture 139 Section Introduction
Lecture 140 Introduction to Pods
Lecture 141 The Pod Lifecycle
Lecture 142 Hands-On: Creating Pods with Kubectl
Lecture 143 Hands-On: Managing Pods with Kubectl
Lecture 144 Hands-On: Exposing Pods via Services
Lecture 145 Hands-On: Color API - Implement v1.0.0
Lecture 146 Hands-On: From Dockerfiles to Pods
Section 18:[Kubernetes] Object Management and YAML Manifests
Lecture 147 Section Introduction
Lecture 148 Object Management in Kubernetes
Lecture 149 Kubernetes Manifest Files
Lecture 150 Hands-On: Working with Imperative Commands - Part 1
Lecture 151 Hands-On: Working with Imperative Commands - Part 2
Lecture 152 Hands-On: Generating Kubernetes Manifests with kubectl
Lecture 153 Hands-On: Shortcomings of Imperative Commands with Configuration Files
Lecture 154 Hands-On: Declarative Object Management in Kubernetes
Lecture 155 Hands-On: Migrating from Imperative to Declarative Object Management
Lecture 156 Hands-On: Creating Multiple Kubernetes Manifests in the Same YAML File
Section 19:[Kubernetes] ReplicaSets and Deployments
Lecture 157 Section Introduction
Lecture 158 What Are ReplicaSets?
Lecture 159 Hands-On: Creating and Managing ReplicaSets
Lecture 160 Hands-On: Shortcomings of ReplicaSets - Updating Pods
Lecture 161 Hands-On: Shortcomings of ReplicaSets - Managing Existing Pods
Lecture 162 Introduction to Deployments
Lecture 163 Hands-On: Creating and Managing Deployments
Lecture 164 Hands-On: Updating the Pod Template
Lecture 165 Hands-On: Understanding Rollouts
Lecture 166 Hands-On: Scaling Deployments with Kubectl
Lecture 167 Hands-On: Troubleshooting Failed Rollouts
Section 20:[Kubernetes] Services Deep Dive
Lecture 168 Section Introduction
Lecture 169 Overview of Services
Lecture 170 Hands-On: Color API - Implement v1.1.0: Add hostname information
Lecture 171 Hands-On: Traffic Generator - Implement v1.0.0
Lecture 172 Hands-On: Deploy the Color API and Traffic Generator
Lecture 173 Hands-On: Working with ClusterIP Services
Lecture 174 Hands-On: Working with NodePort Services
Lecture 175 Hands-On: NodePort Services in Linux
Lecture 176 Hands-On: Working with ExternalName Services
Section 21:[Kubernetes] Resource Management
Lecture 177 Section Introduction
Lecture 178 Labels and Selectors
Lecture 179 Hands-On: Labels and Selectors in Kubectl
Lecture 180 Hands-On: Selecting Objects with MatchLabels and MatchExpressions
Lecture 181 Annotations
Lecture 182 Introduction to Namespaces
Lecture 183 Hands-On: Creating and Managing Namespaces
Lecture 184 Hands-On: Cross-Namespace Service Communication
Lecture 185 Introduction to Resource Quotas, Requests, and Limits
Lecture 186 Hands-On: Working with Resource Quotas
Lecture 187 Hands-On: Setting Resource Requests and Limits
Lecture 188 Hands-On: Rollouts, Resource Requests and Limits
Lecture 189 Introduction to Startup, Liveness, and Readiness Probes
Lecture 190 Hands-On: Color API - Implement v1.2.0: Add health endpoints
Lecture 191 Hands-On: Startup Probes in Details
Lecture 192 Hands-On: Color API - Implement v1.2.1: Add dedicated startup endpoint
Lecture 193 Hands-On: Liveness Probes in Details
Lecture 194 Hands-On: Readiness Probes in Details
Section 22:[Kubernetes] Storage and Persistence
Lecture 195 Section Introduction
Lecture 196 Introduction to Volumes
Lecture 197 EmptyDir and Local Volumes
Lecture 198 Hands-On: Working with EmptyDir Ephemeral Storage
Lecture 199 Introduction to Persistent Volume Claims
Lecture 200 Hands-On: Creating Persistent Volumes and Persistent Volume Claims
Lecture 201 Hands-On: Mounting Volumes in Pods and Containers
Lecture 202 Hands-On: Deleting Persistent Volumes and Persistent Volume Claims
Lecture 203 Hands-On: Dynamically Provisioning Persistent Volumes
Lecture 204 Introduction to StatefulSets
Lecture 205 Hands-On: Working with StatefulSets - Creating Persistent Volumes
Lecture 206 Hands-On: Working with StatefulSets - Creating the StatefulSet
Lecture 207 Hands-On: StatefulSets with Dynamically Provisioned Persistent Volumes
Lecture 208 Hands-On: Headless Services
Section 23:[Kubernetes] Configuration Management
Lecture 209 Section Introduction
Lecture 210 Introduction to ConfigMaps
Lecture 211 Hands-On: Color API - Implement v1.3.0: Receive color information externally
Lecture 212 Hands-On: Passing Information from ConfigMaps via Environment Variables
Lecture 213 Hands-On: Mounting ConfigMaps as Volumes
Lecture 214 Introduction to Secrets
Lecture 215 Hands-On: Passing Information from Secrets via Environment Variables
Lecture 216 Hands-On: Mounting Secrets as Volumes
Section 24:[Kubernetes] Project - Deploying a MongoDB Database
Lecture 217 Project Overview
Lecture 218 Create Database Credentials
Lecture 219 Create Headless Service and ConfigMaps
Lecture 220 Create the StatefulSet
Lecture 221 Deploy and Validate the StatefulSet
Lecture 222 Test Scaling the StatefulSet
Lecture 223 Color API - Implement v2.0.0: Refactoring the Code
Lecture 224 Color API - Implement v2.0.0: Persist Data in the MongoDB Database
Lecture 225 Color API - Implement v2.0.0: Implement Database Connection Logic
Lecture 226 Color API - Implement v2.0.0: Implement Routes for Business Logic
Lecture 227 Deploy the New Color API Version
Lecture 228 Project Wrap-Up and Clean-Up
Section 25:[Kubernetes] Security Fundamentals
Lecture 229 Section Introduction
Lecture 230 Introduction to Security in Kubernetes
Lecture 231 Role-Based Access Control (RBAC)
Lecture 232 Hands-On: Overview of Minikube's Roles and ClusterRoles
Lecture 233 The Kubernetes API
Lecture 234 Hands-On: Exploring API Resources
Lecture 235 Hands-On: Creating Two Users: Alice and Bob
Lecture 236 Hands-On: Configure Access Credentials for Alice and Bob
Lecture 237 Hands-On: Setup Permissions to Read Pods
Lecture 238 Hands-On: Use ClusterRoles for Cluster-Wide Permissions
Lecture 239 Hands-On: Exploring Subresources and Permissions
Lecture 240 Introduction to Service Accounts
Lecture 241 Hands-On: Default Service Accounts
Lecture 242 Hands-On: Creating Our Own Service Accounts
Lecture 243 Hands-On: RBAC - Clean-Up
Lecture 244 Introduction to Network Policies
Lecture 245 Calico vs. Native Kubernetes Network Policies
Lecture 246 Hands-On: Deny All Ingress Traffic
Lecture 247 Hands-On: Allow Traffic Between Specific Pods
Lecture 248 Hands-On: Exploring Pod Selectors
Lecture 249 Hands-On: Combining Pod Selectors
Lecture 250 Hands-On: Handling Egress Traffic
Lecture 251 Hands-On: Network Policies and Namespaces
Lecture 252 Introduction to Pod Security Standards (PSS)
Lecture 253 Hands-On: Working with Pod Security Standards
Lecture 254 Hands-On: Exploring the Pod Security Standards Documentation
Section 26:[Kubernetes] Kustomize
Lecture 255 Section Introduction
Lecture 256 Introduction to Kustomize
Lecture 257 Hands-On: Our First Kustomize Project
Lecture 258 Bases and Overlays
Lecture 259 Hands-On: Creating the Dev and Prod Overlays
Lecture 260 Transformations
Lecture 261 Hands-On: Working with Transformations
Lecture 262 Hands-On: Generating ConfigMaps
Lecture 263 Hands-On: Generating Secrets
Lecture 264 Hands-On: Introduction to Patching
Lecture 265 Hands-On: Working with Strategic Merge Patches
Lecture 266 Hands-On: Working with JSON Patches
Section 27:[Kubernetes] Project - Deploying Our Color API to Google Kubernetes Engine (GKE)
Lecture 267 Project Overview
Lecture 268 Creating a Google Cloud Platform (GCP) Account
Lecture 269 Overview of Project Costs
Lecture 270 Overview of GCP's UI Console
Lecture 271 Installing the gcloud CLI
Lecture 272 Exploring the GKE UI Console
Lecture 273 Create a Google Kubernetes Engine (GKE) Cluster
Lecture 274 Connecting kubectl and GKE
Lecture 275 Deploying an Nginx-based Website
Lecture 276 Exploring Storage Classes in GKE
Lecture 277 Exploring API Resources in GKE
Lecture 278 Create Database Credentials for MongoDB
Lecture 279 Deploy the MongoDB StatefulSet - Part 1
Lecture 280 Deploy the MongoDB StatefulSet - Part 2
Lecture 281 Deploy the MongoDB StatefulSet - Part 3
Lecture 282 Deploy the Color API Application
Lecture 283 Create a LoadBalancer Service for External Access
Lecture 284 Color API - Implement v2.1.0-dev: Expose Prometheus Metrics
Lecture 285 Customize Database Deployments
Lecture 286 Deploy Prod Overlay and Customize Dev Color API Image
Lecture 287 Deny All Ingress and Allow Traffic Between Color API and MongoDB
Lecture 288 Allow External Traffic into Color API Pods
Lecture 289 Register Our Website Domain
Lecture 290 Allocate Static IPs for Ingress
Lecture 291 Create Ingress Objects
Lecture 292 Create Managed TLS Certificates
Lecture 293 Test Ingress Traffic from the Web Towards the Color API Pods
Lecture 294 Project Cleanup
Section 28: Congratulations!
Lecture 295 Congratulations + BONUS Lecture!
Software Engineers looking for up-to-date, relevant, and practical knowledge in both Docker and Kubernetes,Developers who wish to expand their knowledge on working effectively with Docker and Kubernetes,DevOps Practitioners who wish to gain deeper knowledge into Docker and Kubernetes
Bitte
Anmelden
oder
Registrieren
um Links zu sehen.
Recommend Download Link Hight Speed | Please Say Thanks Keep Topic Live
Code:
Bitte
Anmelden
oder
Registrieren
um Code Inhalt zu sehen!