仮想マシン
 Computer >> コンピューター >  >> ソフトウェア >> 仮想マシン

Docker とデータ ボリューム - チュートリアル

変更として、今日は、Docker コンテナー自動化フレームワークに関する比較的短くて単純な記事を用意します。コンテナ内にデータをマウントする方法、データを共有する方法、およびインスタンスを有用なシステムにするために必要なすべての要素について学習します。

これまでのところ、非常に詳細な導入ガイドをお楽しみいただけたでしょうか (これはリベラルな用語です)。次に、サービス、ネットワーキングに手を出し、いくつかの難しいエラーを解決しました。このチュートリアルは、伝統を順を追って続けているため、シンプルで明確なはずです。始めましょう。

基本

コンテナー内のホスト データを公開するプロセスは比較的単純で、mount コマンドに似ています。ソース ディレクトリまたはファイルを指定し、それをターゲット ディレクトリまたはファイルにポイントします。ホストとコンテナの部分で構成されるポートによく似ています。

docker run -it -v /root/testing:/dedoimedo centos:latest /bin/bash

Bash シェルで新しいコンテナを実行しており、ホストの /root/testing ディレクトリをコンテナ内の /dedoimedo の下にマウントします。ホストでは、NFS マウントを含め、ソースは何でもかまいません。これにより、これは効果的に素敵なリモート データ共有のものになります。実際には、NFS は再エクスポートを防ぎますが、同じホストで同じことを実行しているため、これは実際にはごまかしです。

コンテナー内で、/dedoimedo ディレクトリの内容を確認し、内部に格納されているものを確認できるようになりました。ただし、ここでのテスト ケースである標準のデフォルトの CentOS ビルドでは、おそらくエラーが発生します。同様の問題に遭遇する可能性があり、デバッグする準備ができており、喜んでデバッグする必要があるため、これは関連しています。さらに、セキュリティ機能が時々有害になる可能性があることを示しています.

ls
ls:ディレクトリを開けません .:許可が拒否されました

セキュリティ機能。はい、もちろん SELinux です。幸いなことに、問題は解決できます。モジュールの適用ポリシーを変更するか、マウントされたボリュームへのコンテナー アクセスを許可する新しいルールを追加できます。

setenforce 0

そして、ルールは、そのようにしたい場合:

chcon -Rt svirt_sandbox_file_t /<ボリューム>

次に、コンテンツが表示され、再生、ファイルの書き込みなどを開始できます。 実際、マウントされたディレクトリ内に新しいファイルを作成するホストを最初に確認すると、実際のコンテンツを除いて、以下のようなものが表示されます。コース:

コンテナ間の共有

ネットワーキングで行ったのと同じように、コンテナーの 1 つに含まれるデータを他のコンテナーに公開して、コンテナーをデータ ボリューム コンテナーにすることができます。これは、コンテナーの機能をグループ化する場合に非常に役立つ可能性があり、さらにスペースを大幅に節約できます。さらに、コンテナー間でボリュームを連鎖させることもできます。これにより、ホスト データに同時にアクセスできる異なるコンテナーの数を絞り込むことができます。これは、ホストに堅牢な書き込みロック メカニズムがない場合に役立ちます。これは、ほとんどの場合、UNIX 系のシステムに当てはまります。

簡単な例を見てみましょう。 data-source という名前のコンテナーを開始します。 /data マウント ポイントから開始します。必要に応じて、/data がホスト上のディレクトリにマップされていることを確認できますが、今のところは問題ありません。次に、container という名前のデータ ソースのボリュームを使用する 2 つ目のコンテナーを作成します。

docker run -ti --name data-source -v /data centos:latest /bin/bash
docker run -ti --volumes-from data-source centos:latest /bin/bash

ここで、2 つのコンテナーを見ると、どちらも /data ディレクトリを持ちますが、data-source は -volumes-from オプションで実行されたすべてのコンテナーのデータのいわゆるエントリ ポイントになります。多くのデータ スペースを節約し、コンテナーが元のデータを使用してアクセスする方法を制御し、複数のソフトウェア構成をより簡単にテストできます。全体的にとてもきれい。

[root@68d3ed5e243a データ]# pwd
/データ
[root@68d3ed5e243a データ]# touch STUFF
[root@68d3ed5e243a データ]#

そして 2 番目のコンテナー:

[root@7aed935cc156 /]# ls -la /data
合計 4
drwxr-xr-x. 2 root root 5 月 18 日 11:46 .
drwxr-xr-x. 18 root root 4096 May 1 11:45 ..
-rw-r--r--. 1 root root 0 May 1 11:46 STUFF
[root@7aed935cc156 /]#

次は?

信じられないかもしれませんが、ここで終わります。バックアップやデータの削除など、他にも実行できる手順がいくつかありますが、それは別のトピックです。当分の間、データ ボリュームの処理を開始し、それらをコンテナ内でマウント ポイントとして公開するのに十分な量があります。とにかく、経験則として、環境ツールと構成には読み取り専用データを使用し、ビッグ データにはボリューム コンテナーを使用し、テストには小さくて単純なディレクトリとマウント ポイントなどを使用することをお勧めします。

結論

Docker のボリューム処理は比較的単純であり、コンテナ テクノロジのこの側面は、フレームワークの他の部分と同様に成熟レベルに達する前に、さらに成長する必要があると私は信じています。機能が豊富すぎるわけではなく、スナップショット、データ分散と並列化の組み込みサポートなど、データを制御するための追加の方法があるはずです。

少なくとも、このチュートリアルでは、マウント ポイントを作成してデータ ボリュームをマウントする方法、それらをチェーン化する方法、途中でいくつかの小さな問題を修正する方法など、いくつかの新しいことを学びました。おそらく、このガイドは他のガイドに比べて少しむき出しに感じられるかもしれませんが、重い記事や終わりのない記事が常に必要なわけではありません。時には、それを短く甘くしておいても問題ありません。確かに、その爆弾で、終わり。

乾杯。


  1. KVM でストレージを管理する方法 - チュートリアル

    数日前、カーネルベースの仮想マシン (KVM) テクノロジを紹介しました。これは、VirtualBox および VMware 製品の代わりに、またはそれらと一緒に使用することを検討できる無料のオープンソースの仮想化ソリューションです。いずれにせよ、基本的な管理に手を出しましたが、ストレージとネットワークは別のチュートリアルのために残しました. 今日は、KVM でのストレージの管理に関するより詳細なガイドを提供したいと思います。これは、仮想ディスクの追加、縮小、拡張など、VirtualBox で行ったことと多少似ています。 NFS ストレージや NTFS でフォ​​ーマットされた USB 接

  2. VirtualBox でディスクのクローンを作成する方法 - チュートリアル

    ビジネスまたは娯楽で仮想化を使用している場合、VirtualBox に出くわしたことがあるかもしれません。VirtualBox は非常に強力で汎用性の高い無料のソリューションであり、デスクトップ ユーザーがオペレーティング システムを導入する際に非常に柔軟に対応できます。 また、マニアックな趣味で仮想化を楽しんでいるだけの愛好家や、仮想化のおかげで新しいオペレーティング システムの使い方を学んでいる熱心なソフトウェア愛好家以上の場合は、次のシナリオに遭遇することになります。多数の仮想マシンを展開します。 個々のインストールをいじる時間はありません。実際、マシンを 1 つずつ手動で構成す