0Pricing
Docker & Kubernetes for Developers · レッスン

ボリュームによるデータ永続化

個々のコンテナのライフサイクルを超えてアプリケーションデータを保持できるよう、Dockerボリュームを実装します。

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

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

Ephemeral Containers

When you run an application inside a Docker container, any data it creates or modifies is, by default, stored within the container's writable layer. This data is called ephemeral.

This means that if the container is stopped, removed, or crashes, all that valuable data is lost! This is a big problem for databases, user uploads, or configuration files that need to stick around.

We need a robust way to store data outside the container's lifecycle.

What are Docker Volumes?

Docker volumes are the preferred and most efficient way to persist data generated by and used by Docker containers. They are designed to solve the problem of ephemeral data.

  • Volumes are managed by Docker itself, making them more robust and portable.
  • They live on the host filesystem, but Docker handles their creation, management, and mounting to containers.
  • Crucially, volumes are designed to outlive the container that created them, ensuring your data is safe and persistent.

Volumes vs. Bind Mounts

While volumes are the recommended approach, it's good to know the other main method for persistence:

  • Volumes: Docker fully manages the lifecycle and location of the data on the host. This is the primary choice for most containerized applications.
  • Bind Mounts: You control the exact mount point on the host filesystem. Docker doesn't manage the host data, giving you more control but less portability.

For this lesson, we'll focus on the powerful and flexible Docker volumes!

Creating Your First Volume

Before using a volume with a container, you can explicitly create a named volume. This gives you a clear, manageable reference.

Let's create a volume named my-data.

docker volume create my-data

Attaching Volume to Container

Now, let's run a container and attach our my-data volume to it. We'll mount it to /app/data inside the container using the -v flag.

When the container writes data to /app/data, that data will be saved in the my-data volume, ensuring it persists.

docker run -d --name my-app-with-data -v my-data:/app/data alpine sh -c "echo 'Hello from volume!' > /app/data/message.txt && sleep 3600"

Accessing Volume Data

The data written to our volume is now persistent, even if the container stops or is removed. To prove it, let's run a new, temporary container and mount the same volume to it.

Then, we'll read the message.txt file we created earlier. Notice how the data is still there!

docker run --rm -v my-data:/app/data alpine cat /app/data/message.txt

Listing All Volumes

It's good practice to keep track of the volumes on your system. You can easily list all Docker volumes using a simple command. This helps you manage your persistent data storage and identify any unused volumes.

docker volume ls

Removing Unused Volumes

When you no longer need a volume, it's important to remove it to free up disk space. Remember, removing a volume permanently deletes all its data!

First, ensure no containers are actively using the volume. You might need to stop and remove any containers attached to it before removing the volume itself.

docker stop my-app-with-data
docker rm my-app-with-data
docker volume rm my-data

Volume Persistence Check

Containers are designed to be ephemeral. Which of the following commands is the primary way to ensure data created by a Docker container persists even after the container is removed?

Recap: Data Persistence

Great job! In this lesson, you learned about Docker volumes and why they are crucial for data persistence:

  • Container data is ephemeral and typically lost when containers are removed.
  • Docker volumes provide a managed, robust way to store data on the host, independent of the container's lifecycle.
  • You learned how to create, use, inspect, list, and remove named volumes.

Now your Dockerized applications can keep their important data safe and accessible!

よくある質問

「ボリュームによるデータ永続化」レッスンは無料ですか?

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

「ボリュームによるデータ永続化」で何を学びますか?

個々のコンテナのライフサイクルを超えてアプリケーションデータを保持できるよう、Dockerボリュームを実装します。 ブラウザで直接実行するハンズオンコードでDocker & Kubernetes for Developersを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Docker & Kubernetes for Developersを始めるのに経験は必要ですか?

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

「ボリュームによるデータ永続化」レッスンにはどのくらい時間がかかりますか?

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

このDocker & Kubernetes for Developersレッスンでコードを書いて実行できますか?

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

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

  1. Dockerネットワークの種類を理解する
  2. コンテナネットワークの設定
  3. ボリュームによるデータ永続化
  4. Docker Composeネットワークでコンテナを接続する
← Docker & Kubernetes for Developersに戻る