Docker-storage

提供:Dev Guides
移動先:案内検索

Docker-ストレージ

ストレージドライバー

Dockerには、基盤となるストレージデバイスを操作できる複数のストレージドライバーがあります。 次の表に、さまざまなストレージドライバーと、ストレージドライバーに使用されるテクノロジを示します。

Technology Storage Driver
OverlayFS overlay or overlay2
AUFS aufs
Btrfs brtfs
Device Manager devicemanager
VFS vfs
ZFS zfs

ここで、さまざまなストレージドライバーを使用するいくつかのインスタンスについて説明しましょう-

AUFS

  • これは安定したドライバーです。本番用のアプリケーションに使用できます。
  • メモリ使用量が多く、コンテナのスムーズなDockerエクスペリエンスを確保するのに適しています。
  • このドライバーに関連する高書き込みアクティビティがあり、考慮する必要があります。
  • Platform as a Serviceタイプの作業を行うシステムに適しています。

デバイスマッパー

  • これは安定したドライバーです。スムーズなDockerエクスペリエンスを保証します。
  • このドライバーは、ラボでのアプリケーションのテストに適しています。
  • このドライバーは、主要なLinuxカーネル機能と一致しています。

Btrfs

  • このドライバーは、主要なLinuxカーネル機能と一致しています。
  • このドライバーに関連する高書き込みアクティビティがあり、考慮する必要があります。
  • このドライバーは、複数のビルドプールを維持するインスタンスに適しています。

オベレー

  • これは安定したドライバーであり、主要なLinuxカーネル機能と一致しています。
  • メモリ使用量が良好です。
  • このドライバーは、ラボでのアプリケーションのテストに適しています。

ZFS

  • これは安定したドライバーであり、ラボでのアプリケーションのテストに適しています。
  • Platform-as-a-Serviceタイプの作業を行うシステムに適しています。

使用されているストレージドライバーを確認するには、 docker info コマンドを発行します。

構文

docker info

オプション

None

戻り値

このコマンドは、DockerホストにインストールされたDockerコンポーネントに関するすべての関連情報を提供します。

sudo docker info

出力

次の出力は、使用されているメインドライバーが aufs ドライバーであり、ルートディレクトリが /var/lib/docker/aufs に格納されていることを示しています。

AUFSドライバー

データ量

Dockerには、コンテナ間で共有できる個別のボリュームがあります。 これらは*データボリューム*と呼ばれます。 データボリュームの機能のいくつかは次のとおりです-

  • コンテナの作成時に初期化されます。
  • これらは、多くのコンテナ間で共有および再利用できます。
  • ボリューム自体の変更は直接行うことができます。 *コンテナが削除された後でも存在します。

Jenkinsコンテナを見てみましょう。* docker inspect を実行して、この画像の詳細を確認しましょう。 次のコマンドを発行して、 *docker inspect コマンドの出力をテキストファイルに書き込み、それに応じてファイルを表示できます。

sudo docker inspect Jenkins > tmp.txt
  • moreコマンド*を使用してテキストファイルを表示すると、 JENKINS_HOME =/var/Jenkins_home としてエントリが表示されます。

これは、コンテナ内でJenkinsイメージを介して行われるマッピングです。

データボリューム

ここで、コンテナ内のボリュームをローカルボリュームにマップする場合、コンテナの起動時に-vオプションを指定する必要があります。 以下に例を示します-

sudo docker run –d –v/home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins

-vオプションを使用して、 /var/jenkins_home であるコンテナー内のボリュームを、 /home/demo であるDockerホスト上の場所にマップします。

Vオプション

コンテナーを起動した後、Dockerホストの /home/demo の場所に移動すると、そこにあるすべてのコンテナーファイルが表示されます。

コンテナファイル

コンテナのストレージドライバーの変更

コンテナに使用されるストレージドライバに変更したい場合は、コンテナの起動時に変更できます。 これは、 docker run コマンドを使用するときに –volume-driver パラメーターを使用して実行できます。 以下に例を示します-

sudo docker run –d –volume-driver=flocker
   –v/home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins
*–volume-driver* オプションは、コンテナに別のストレージドライバーを指定するために使用されます。

ボリュームドライバー

ドライバーが変更されたことを確認するには、まず docker ps コマンドを使用して、実行中のコンテナーを確認し、コンテナーIDを取得します。 だから、最初に次のコマンドを発行します-

sudo docker ps

次に、コンテナに対して docker inspect を発行し、コマンドを使用して出力をテキストファイルに入れます。

sudo docker inspect 9bffb1bfebee > temp.txt

Docker Against Command

テキストファイルを参照し、 VolumeDriver という行に移動すると、ドライバー名が変更されていることがわかります。

ドライバー名が変更されました

ボリュームを作成する

ボリュームは、 docker コマンドを使用して事前に作成できます。 このコマンドについて詳しく学びましょう。

構文

docker volume create –-name=volumename –-opt options

オプション

  • name -これは作成する必要があるボリュームの名前です。
  • opt -これらは、ボリュームの作成中に提供できるオプションです。

戻り値

このコマンドは、作成されたボリュームの名前を出力します。

sudo docker volume create –-name = demo –opt o = size = 100m

上記のコマンドでは、サイズが100MBで、名前がdemoのボリュームを作成しています。

出力

上記のコマンドの出力は以下に示されています-

ボリュームの作成

すべてのボリュームのリスト

  • dockerホスト*上のすべての* dockerボリューム*をリストすることもできます。 このコマンドの詳細は以下に記載されています-

構文

docker volume ls

オプション

None

戻り値

このコマンドは、* dockerホスト*上のすべてのボリュームを出力します。

sudo docker volume ls

出力

上記のコマンドの出力は以下に示されています-

すべてのボリューム出力のリスト