Docker-ストレージ

ストレージドライバー

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

技術 ストレージドライバー
OverlayFS オーバーレイまたはoverlay2
AUFS aufs
Btrfs brtfs
デバイスマネージャ デバイスマネージャ
VFS vfs
ZFS zfs

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

AUFS

  • これは安定したドライバーです。本番環境に対応したアプリケーションに使用できます。

  • メモリ使用量が多く、コンテナのDockerエクスペリエンスをスムーズにするのに適しています。

  • このドライバーに関連する書き込みの多いアクティビティがあり、これを考慮する必要があります。

  • Platform as aServiceタイプの作業であるシステムに適しています。

デバイスマッパー

  • これは安定したドライバーです。スムーズなDockerエクスペリエンスを保証します。

  • このドライバーは、ラボでアプリケーションをテストするのに適しています。

  • このドライバーは、Linuxカーネルの主な機能と一致しています。

Btrfs

  • このドライバーは、Linuxカーネルの主な機能と一致しています。

  • このドライバーに関連する書き込みの多いアクティビティがあり、これを考慮する必要があります。

  • このドライバーは、複数のビルドプールを維持する場合に適しています。

Ovelay

  • これは安定したドライバーであり、主なLinuxカーネル機能と一致しています。

  • それは良いメモリ使用量を持っています。

  • このドライバーは、ラボでアプリケーションをテストするのに適しています。

ZFS

  • これは安定したドライバーであり、ラボでアプリケーションをテストするのに適しています。

  • これは、Platform-as-a-Serviceタイプの作業であるシステムに適しています。

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

構文

docker info

オプション

なし

戻り値

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

sudo docker info

出力

次の出力は、使用されるメインドライバーが aufs ドライバとルートディレクトリが保存されていること /var/lib/docker/aufs

データ量

Dockerには、コンテナー間で共有できる個別のボリュームがあります。これらはとして知られていますdata volumes。データ量の特徴のいくつかは次のとおりです。

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

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

sudo docker inspect Jenkins > tmp.txt

を使用してテキストファイルを表示する場合 more command、次のようなエントリが表示されます 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 Dockerホスト上の場所に /home/demo

今、あなたが行くなら /home/demo コンテナを起動した後のDockerホスト上の場所に、そこに存在するすべてのコンテナファイルが表示されます。

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

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

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

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

ボリュームの作成

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

構文

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

オプション

  • name −これは作成する必要のあるボリュームの名前です。

  • opt −これらは、ボリュームの作成中に提供できるオプションです。

戻り値

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

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

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

出力

上記のコマンドの出力を以下に示します-

すべてのボリュームを一覧表示

すべてを一覧表示することもできます docker volumesdocker host。このコマンドの詳細を以下に示します-

構文

docker volume ls

オプション

なし

戻り値

コマンドは、上のすべてのボリュームを出力します docker host

sudo docker volume ls

出力

上記のコマンドの出力を以下に示します-