[51CTO.com クイック翻訳] Docker コンテナを使用すると、企業は大規模かつ迅速にアプリケーションとサービスを提供できます。コンテナ化されたアプリケーションのデプロイは非常に簡単なので、すぐに始めることができます。 Docker を使い始めてすぐに気付くことの 1 つは、デプロイされたコンテナーはデータの保存方法と格納方法が制限され、この制限はコンテナー ファイル システムにあるということです。 Docker コンテナは、一連の読み取り専用レイヤーとその上に最終的な読み取り/書き込みレイヤーを含む、Union File System (UFS) を使用します。コンテナがデータを保存する必要がない場合、システムは最適に実行されます。しかし、データを永続化する必要があるサービス (データベースに接続するアプリケーションなど) をデプロイする場合はどうすればよいでしょうか? ようこそ本へ Docker ボリュームは、ホスト ファイル システム上に存在し、コンテナーの UFS の一部ではないディレクトリ (またはファイルのコレクション) です。コンテナはこれらのボリューム内にデータを保存できます。 docker volume コマンドを使用すると、ボリュームを簡単に管理して、コンテナを基本機能を超えて拡張できます。 コンテナがボリューム内のデータと同期された状態を保つように、ホスト上の特定のディレクトリに接続されたボリュームを含む新しいコンテナをデプロイする方法を学びましょう。ここでは Ubuntu Server 18.04 でデモンストレーションを行いますが、プラットフォームが Docker をサポートしている限り (ディストリビューションに関係なく)、プロセスは同じです。 Docker が起動して実行されており、コンテナをデプロイできることが前提となります。 ホストデータボリュームを作成する 最初のステップは、ボリュームを保持するための新しいディレクトリを作成することです。これを行うには、ターミナル ウィンドウを開いて次のコマンドを実行します。
作成したディレクトリが Docker ユーザーがアクセスできる場所 (読み取りおよび書き込み権限がある場所) にあることを確認する必要があります。 ディレクトリが作成されると、その中にボリュームをマウントできます。 /data というディレクトリを含む公式 Ubuntu イメージに基づいてコンテナをデプロイするとします。内部の /data ディレクトリをホスト ディレクトリ ~/container-data 内のボリュームに接続するコンテナをデプロイするには、次のコマンドを実行します。
上記のコマンドは次のように分解されます。
コマンドが完了すると、コンテナ ID が取得されます (図 A)。コンテナの bash プロンプトにアクセスするときに必要となるため、ID の最初の 4 文字を必ず覚えておいてください。 図A. デプロイしたコンテナ これで、ホスト ボリュームの ~/container-data に /data ディレクトリがマウントされた、公式 Ubuntu イメージに基づくコンテナーがデプロイされました。 テストペーパー このボリュームをテストしてみましょう。コンテナ ID を忘れた場合は、コマンド docker ps -a を実行して表示します (図 B)。 図B: デプロイしたコンテナのリスト 新しくデプロイされたコンテナにアクセスするには、次のコマンドを使用します。
ID は、デプロイされたコンテナの最初の 4 文字です。これで、コンテナ内に bash プロンプトが表示されるはずです (図 C)。 図C: 新しいコンテナのbashプロンプト ls / コマンドを実行すると、/data ディレクトリが Ubuntu コンテナに追加されたことがわかります。次のコマンドを使用して、そのディレクトリにテスト ファイルを作成しましょう。
テスト ファイルを作成したら、ホスト上で別のターミナル ウィンドウを開き、ls ~/container-data コマンドを実行します。そのディレクトリにテスト ファイルが表示されます (図 D)。 図 D: コンテナ内に作成したテスト ファイルは、ホスト上のボリュームに表示されます。 ホスト上のボリュームを介して永続ストレージを備えたコンテナをデプロイしました。 データベースボリューム データベース用のボリュームを作成するとします。これを行うには、まず MySQL データベース Docker コンテナをデプロイし、mysql-data という名前の永続ストレージ ボリュームを使用するように指示します。これを実行するには、次のコマンドを使用します。
上記のコマンドでは、-e パラメータ オプションは、後続が環境変数であることを Docker に伝えます。 次のコマンドを使用してコンテナの bash プロンプトにアクセスします。
ここで、ID は、デプロイしたコンテナの ID の最初の 4 文字です。 コンテナの /var/lib/mysql ディレクトリの内容を一覧表示するには、次のコマンドを使用します。
内容をメモし、次のコマンドでコンテナを終了します。
次に、次のコマンドを使用して、ホストにマウントされたボリュームの内容を確認します。
両方のディレクトリに同じ内容がリストされているはずです (図 E)。 図E: MySQLデータはホストボリュームと同期されています これで、ホスト上のボリュームに永続ストレージがマウントされた MySQL ベースのコンテナができました。 これは、Docker コンテナとホスト マシン間でデータを共有する全体的な方法です。ロールの助けにより、このタスクは簡単であるだけでなく、非常に柔軟になります。 原題: Docker の基礎: Docker コンテナとホスト間でデータを共有する方法、著者: Jack Wallen [51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください。 |
<<: Red Hat、オープンハイブリッドクラウドの新時代を計画
最近、多くの人が自分の映画のウェブサイトを作りたいのですが、それをどのように宣伝したらよいか分かりま...
ほとんどの企業は、計画に含まれていたかどうかにかかわらず、マルチクラウド環境を管理していることになり...
このたび、世界有数のIT市場調査・コンサルティング会社であるIDCは、2022年版「MarketSc...
私のユーザー リーチの定義は、特定の目的に基づいて、特定のシナリオで、特定のチャネルを通じて特定のユ...
アプリケーションによって処理されるデータの量が増え続けるにつれて、ストレージの拡張はますます困難にな...
2008年以来、義務教育を受けている子どもたちが毎年初めにテレビをつけて新学年の最初の授業を見るのが...
国家の新インフラプロジェクト「東データ西コンピューティング」が本格的に始動したことで、わが国のクラウ...
この期間中、Baidu の最近のアルゴリズム調整の影響を受けたいくつかの電子商取引 Web サイトで...
ウェブサイトディレクトリの最適化は、ウェブサイトのホームページに次ぐ最も重要なページの一つです。では...
WeChat は今とても人気があります。私はずっと中途半端な人間で、WeChat がリリースされてか...
「オパ カンナムスタイル」 このリズムを聞くと、つい一緒に踊りたくなる。 そう、これが神曲「カンナム...
どのようなウェブサイトであっても、それは間違いなくページから構成される全体です。ウェブサイト全体の重...
Baidu の度重なる革新の波により、ウェブサイト上の外部リンクの数は減少しています。ウェブサイトの...
「人生は孤独すぎる。一緒に暮らすのに面白い人を見つける必要がある。」 - 王暁波誰もがユーモラスなデ...
123systems が XEN ベースの VPS をリリースして以来、価格が少し高騰しています。も...