Docker-storage
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 に格納されていることを示しています。
データ量
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ホスト上の場所にマップします。
コンテナーを起動した後、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
テキストファイルを参照し、 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
出力
上記のコマンドの出力は以下に示されています-