0Pricing
System Design Basics for Backend Developers · レッスン

DockerとK8sによるコンテナ化

アプリケーションのコンテナ化にDockerを、コンテナ化されたワークロードの大規模なオーケストレーションにKubernetesを使いこなします。

「DockerとK8sによるコンテナ化」はCoddyKit上の無料System Design Basics for Backend Developersレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSystem Design Basics for Backend Developers学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 System Design Basics for Backend Developersコースには全4レッスンが含まれています。

このレッスンの一部はまだ翻訳されておらず、英語で表示されています。

Welcome to Containerization!

Welcome to this lesson on Containerization with Docker & Kubernetes! In modern cloud environments, packaging and managing applications efficiently is key.

You'll learn how Docker containers bundle your apps and how Kubernetes orchestrates them at scale, making your systems robust and flexible.

What are Containers?

Imagine a tiny, self-contained box for your application. That's a container!

  • Isolated: Each container runs its own app and dependencies, separate from others.
  • Portable: Works the same way on any machine with a container runtime.
  • Lightweight: Shares the host OS kernel, unlike heavier Virtual Machines (VMs).

This consistency solves the "it works on my machine" problem.

Meet Docker: The Container Engine

Docker is the most popular platform for building, sharing, and running containers. It provides the tools to create these isolated environments.

  • Docker Engine: The core software that runs and manages containers.
  • Docker Image: A read-only template with instructions for creating a container.
  • Docker Container: A runnable instance of a Docker image.

Crafting a Dockerfile

A Dockerfile is a plain text file that contains all the commands a user could call on the command line to assemble an image.

It's like a recipe for your container. Here are some common instructions:

  • FROM: Base image (e.g., Python, Node.js).
  • WORKDIR: Sets the working directory.
  • COPY: Copies files from your project into the image.
  • RUN: Executes commands (e.g., install dependencies).
  • CMD: Default command to run when the container starts.

Simple Python App for Docker

Let's look at a very simple Python application that we could containerize. This is the code that would live inside your Docker container.

Try running this example:

print("Hello from inside the container!")

Building & Running with Docker

Once you have a Dockerfile and your application code (like the Python script), you can build an image and run a container.

  • Build Image: docker build -t my-python-app . (-t tags it, . uses current directory for Dockerfile)
  • Run Container: docker run my-python-app

This creates and starts a container based on your image, executing the app inside.

Why Kubernetes? Orchestration

Running one container is easy. Running hundreds or thousands across many servers is hard! This is where Kubernetes (K8s) comes in.

K8s is an open-source system for automating deployment, scaling, and management of containerized applications. It acts as an "orchestrator" for your containers.

Kubernetes Pods: The Basics

In Kubernetes, the smallest deployable unit is a Pod. A Pod is an abstraction over containers.

  • A Pod represents a single instance of an application.
  • It typically contains one (or a few tightly coupled) containers.
  • Pods share network and storage resources.
  • They are ephemeral: if a Pod dies, K8s creates a new one.

Kubernetes Deployments: Managing Pods

Manually managing Pods is cumbersome. Deployments are a higher-level object in K8s that manage the lifecycle of Pods.

A Deployment allows you to:

  • Declare the desired number of replica Pods.
  • Perform rolling updates to new versions without downtime.
  • Roll back to previous versions if issues arise.
  • Ensure that a specified number of Pods are always running.

Test Your Container Knowledge

Which of the following statements correctly describe the benefits of using containers and container orchestration?

Recap: Docker & Kubernetes

You've taken a big step into cloud-native development!

  • Containers package apps and dependencies into isolated, portable units.
  • Docker is the popular tool to build and run these containers.
  • Kubernetes orchestrates containers at scale, automating deployment, scaling, and management.

Together, they form the backbone for building resilient, scalable modern applications.

よくある質問

「DockerとK8sによるコンテナ化」レッスンは無料ですか?

はい。「DockerとK8sによるコンテナ化」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、System Design Basics for Backend Developersコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 System Design Basics for Backend Developersコースには全4レッスンが含まれています。

「DockerとK8sによるコンテナ化」で何を学びますか?

アプリケーションのコンテナ化にDockerを、コンテナ化されたワークロードの大規模なオーケストレーションにKubernetesを使いこなします。 ブラウザで直接実行するハンズオンコードでSystem Design Basics for Backend Developersを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

System Design Basics for Backend Developersを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSystem Design Basics for Backend Developersは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「DockerとK8sによるコンテナ化」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSystem Design Basics for Backend Developersレッスンでコードを書いて実行できますか?

はい。すべてのSystem Design Basics for Backend Developersレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. サーバーレスアーキテクチャ
  2. DockerとK8sによるコンテナ化
  3. オブザーバビリティと分散トレーシング
  4. Infrastructure as Code
← System Design Basics for Backend Developersに戻る