Docker ボリュームの内容を調査する方法

DockerDockerBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

Docker ボリュームは、コンテナのファイルシステムの外部にデータを永続化することができる強力な機能です。Docker ボリュームの内容を調査する方法を理解することは、Docker ベースのアプリケーションを効果的に管理し、トラブルシューティングするために不可欠なスキルです。このチュートリアルでは、Docker ボリュームを調査するプロセスを案内し、実用的なユースケースと例を紹介します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/VolumeOperationsGroup(["Volume Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/VolumeOperationsGroup -.-> docker/cp("Copy Data Between Host and Container") docker/VolumeOperationsGroup -.-> docker/volume("Manage Volumes") docker/SystemManagementGroup -.-> docker/info("Display System-Wide Information") subgraph Lab Skills docker/ls -.-> lab-416185{{"Docker ボリュームの内容を調査する方法"}} docker/inspect -.-> lab-416185{{"Docker ボリュームの内容を調査する方法"}} docker/cp -.-> lab-416185{{"Docker ボリュームの内容を調査する方法"}} docker/volume -.-> lab-416185{{"Docker ボリュームの内容を調査する方法"}} docker/info -.-> lab-416185{{"Docker ボリュームの内容を調査する方法"}} end

Docker ボリュームの紹介

Docker ボリュームは、Docker コンテナによって生成されたデータを永続化する方法です。これらは、コンテナのライフサイクルとは独立してデータを保存および管理する方法を提供し、コンテナ間でデータを共有したり、コンテナが削除された後でもデータを保持したりすることができます。

Docker ボリュームは、アプリケーションファイル、設定データ、データベースファイルなど、さまざまなデータを保存するために使用できます。これらは、Docker CLI を使用して、または Docker API を通じて作成および管理することができます。

Docker ボリュームを使用する主な利点の 1 つは、アプリケーションコードとデータを分離する方法を提供することで、アプリケーションの管理と保守が容易になることです。これは、アプリケーションをスケールアップしたり、別の環境に移動する必要があるシナリオで特に有用です。なぜなら、データはアプリケーションとは独立して簡単に転送またはバックアップできるからです。

graph TD A[Docker Container] -- Writes Data --> B[Docker Volume] B[Docker Volume] -- Stores Data --> C[Host File System]

新しい Docker ボリュームを作成するには、docker volume create コマンドを使用できます。

docker volume create my-volume

これにより、1 つ以上の Docker コンテナで使用できる my-volume という名前の新しいボリュームが作成されます。

ボリュームが作成されたら、docker run コマンドを実行するときに -v または --mount フラグを使用して、コンテナにマウントできます。

docker run -v my-volume:/app ubuntu /bin/bash

これにより、my-volume ボリュームが Ubuntu コンテナ内の /app ディレクトリにマウントされます。

Docker ボリュームの内容を調査する

Docker ボリュームを作成し、コンテナにマウントした後、データが正しく保存されていることを確認したり、問題をトラブルシューティングしたりするために、ボリュームの内容を調査する必要がある場合があります。

Docker ボリュームの一覧表示

docker volume ls コマンドを使用して、システム上のすべての Docker ボリュームを一覧表示できます。

docker volume ls

これにより、ボリュームの名前やドライバーを含むすべてのボリュームの一覧が表示されます。

特定のボリュームを調査する

特定のボリュームの内容を調査するには、docker volume inspect コマンドを使用できます。

docker volume inspect my-volume

これにより、ボリュームに関する詳細情報が表示され、ホストファイルシステム上のマウントポイントも含まれます。

ボリュームの内容にアクセスする

ボリュームの内容にアクセスするには、docker run コマンドを使用して新しいコンテナを起動し、ボリュームをコンテナ内のディレクトリにマウントします。例えば:

docker run -it --rm -v my-volume:/app ubuntu /bin/bash

これにより、新しい Ubuntu コンテナが起動し、my-volume ボリュームがコンテナ内の /app ディレクトリにマウントされ、ボリュームの内容を探索できるシェルプロンプトが表示されます。

コンテナ内に入ったら、標準の Linux コマンドを使用して、ボリュームの内容を一覧表示、表示、および変更できます。

ls -l /app
cat /app/file.txt
echo "Hello, LabEx!" > /app/file.txt

作業が終了したら、コンテナを終了でき、ボリュームに対して行った変更は保持されます。

実用的なユースケースと例

Docker ボリュームは、さまざまなシナリオで使用できます。以下にいくつかの例を示します。

永続的なデータストレージ

Docker ボリュームの最も一般的なユースケースの 1 つは、1 つ以上のコンテナがアクセスする必要のある永続的なデータを保存することです。これには、データベースファイル、設定データ、またはその他のアプリケーション固有のデータが含まれる場合があります。

たとえば、コンテナ内で実行されている MySQL データベースのデータを保存するために Docker ボリュームを使用できます。

docker run -d --name mysql -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password mysql

これにより、mysql-data という名前の新しいボリュームが作成され、MySQL コンテナ内の /var/lib/mysql ディレクトリにマウントされます。このボリュームに保存されたデータは、コンテナが停止または削除されても保持されます。

コンテナ間でのデータ共有

Docker ボリュームは、複数のコンテナ間でデータを共有するためにも使用できます。これは、マイクロサービスアーキテクチャのように、複数のコンテナが同じデータにアクセスする必要があるシナリオで役立ちます。

たとえば、Web サーバーとアプリケーションサーバー間で設定ファイルを共有するために Docker ボリュームを使用できます。

docker run -d --name web -v config-data:/app/config nginx
docker run -d --name app -v config-data:/app/config my-app

web コンテナと app コンテナの両方が、config-data ボリュームに保存された同じ設定データにアクセスできます。

バックアップと復元

Docker ボリュームは、データのバックアップと復元にも使用できます。docker volume create コマンドと docker volume inspect コマンドを使用してボリュームを作成および調査し、tarrsync などのツールを使用してボリュームデータをバックアップおよび復元できます。

たとえば、次のコマンドを使用してボリュームをバックアップおよび復元できます。

## Backup the volume
docker run --rm -v my-volume:/backup ubuntu tar czf /backup/backup.tar.gz /backup

## Restore the volume
docker run --rm -v my-volume:/restore ubuntu bash -c "cd /restore && tar xzf /backup/backup.tar.gz"

これにより、my-volume ボリュームのバックアップが作成され、新しいボリュームに復元されます。

全体として、Docker ボリュームは、コンテナ化された環境でデータを管理するための柔軟で強力な方法を提供します。Docker ボリュームを調査し、操作する方法を理解することで、LabEx を使用してより堅牢でスケーラブルなアプリケーションを構築できます。

まとめ

このチュートリアルでは、Docker ベースのアプリケーションを管理し、トラブルシューティングするために重要なスキルである、Docker ボリュームの内容を調査する方法を学びました。利用可能なさまざまな方法を理解することで、Docker ボリューム内に保存されているデータを効果的に操作し、探索することができます。これにより、問題を診断し、データの整合性を検証し、Docker を活用したワークフローを最適化することができます。