ブログに戻る

Dockerコンテナとホストの間でデータを共有する方法

Dockerコンテナとホストの間でデータを共有する方法

はじめに

一般的に、Dockerコンテナは特定の期間 – コマンドの実行にかかる時間だけ実行されます。コンテナ内で利用可能なデータは、実行中のみコンテナ内からアクセスできます。

Dockerボリュームを使用すると、ファイルに簡単にアクセスし、より長期間保存することができます。例えば、Nginxウェブサーバーがあり、監査のためにログを保存したい場合、Dockerボリュームを使用してコンテナからのログをホストマシンに保存できます。

このチュートリアルでは、Dockerコンテナの内部とホストマシンの間でデータを共有する方法を学びます。

前提条件

このチュートリアルでは、以下の前提条件が必要です。

ステップ 1 – ボリュームのバインドマウント

次のコマンドを使用して、現在のユーザーのホームディレクトリにlogsという名前のディレクトリを作成し、それをNginxコンテナの/var/log/nginxにバインドマウントできます:

このコマンドの詳細情報は以下の通りです:

  • --name=nginx は、参照しやすくするためにコンテナに名前を付けます。
  • -d 引数はプロセスをデタッチし、バックグラウンドで実行します。
  • -v hostPath:containerPath は、ホストのパスとコンテナのパスをマッピングしてマウントをバインドします。
  • -p hostPort:containerPort 引数は、コンテナのポートをホストのポートにマッピングします。
  • nginx 行の最後にあるのは、コンテナを起動するために使用するイメージの名前です。
注意: hostPathを開始するには常に / または ~/ を使用してください。そうしないと、-v 引数はパスをボリューム名とみなし、マウントをバインドしません。

ステップ 2 – ホスト上のデータへのアクセス

これで、サーバー上でNginxコンテナが実行され、サーバーのポート5000がNginxのポート80にマッピングされました。次のURLを使用して、ウェブブラウザでポートを開くことができます:

nginx homepage

In the ~/logs directory, you will see access.log and error.log files. You can see the logs by using the cat command:

ホストマシンのログディレクトリ~/logsを確認して、Nginxのログファイルを見つけることもできます。さらに、logsフォルダに変更を加えると、それらはコンテナの/var/log/nginxフォルダにも反映されます。

まとめ

このチュートリアルでは、Dockerコンテナの内部とホストマシンの間でデータを共有する方法を学びました。これは、デバッグのためにログの分析が不可欠な開発環境において重要です。

Dockerに関するその他のリソースについては、当社のブログで以下を確認できます:

ハッピーコンピューティング!

author

Akshay Nagpal

著者 · CloudSigma

Preslav DobrevはCloudSigmaのクリエイティブデザイナーであり、従来型および革新的なマーケティングチャネルを活用した一貫性のあるビジネスアイデンティティに注力しています。彼は芸術的なビジョンと戦略的マーケティングを融合させ、インパクトのあるブランドナラティブを生み出すことに長けています。

コメント

コメントはまだありません。最初のコメントを投稿しましょう。