Dockerで邪魔なログを表示しないデタッチドモードとは?

IT・プログラミング

Dockerを使う際、コンテナの起動モードには主に「デタッチドモード」と「フォアグラウンドモード」の2種類があります。それぞれのモードは異なる場面で使い分けることが重要です。この記事では、それぞれのモードの特徴と使用方法について解説します。

デタッチドモードとは?

デタッチドモード(detached mode)とは、コンテナをバックグラウンドで実行するモードです。コンテナを起動した後、ターミナルに戻り、他のコマンドを実行することができます。デタッチドモードは、サーバーや長期間実行されるアプリケーションをコンテナ内で実行する場合に便利です。

デタッチドモードの特徴

  • コンテナはバックグラウンドで実行される。
  • 起動後、ターミナルをすぐに使うことができる。
  • ログや標準出力はターミナルには表示されないが、docker logsコマンドで確認できる。

デタッチドモードの使い方

デタッチドモードでコンテナを起動するには、docker runコマンドに-dオプションを付けます。

docker run -d <イメージ名>

例えば、nginxサーバーをデタッチドモードで起動するには次のようにします。

docker run -d nginx

これにより、nginxコンテナがバックグラウンドで実行され、ターミナルがすぐに操作可能になります。

フォアグラウンドモードとは?

フォアグラウンドモード(foreground mode)は、コンテナをターミナル上で実行するモードです。コンテナの標準出力やエラーメッセージがリアルタイムでターミナルに表示され、コンテナの実行が終了するまでターミナルが占有されます。

フォアグラウンドモードの特徴

  • コンテナの標準出力がリアルタイムでターミナルに表示される。
  • コンテナの実行中はターミナルが占有され、他のコマンドを実行できない。
  • コンテナの終了はターミナルの停止操作で直接行う。

フォアグラウンドモードの使い方

フォアグラウンドモードは、docker runコマンドを-dオプションなしで実行します。

docker run <イメージ名>

例えば、nginxをフォアグラウンドモードで実行する場合は次のようにします。

docker run nginx

これにより、nginxのログがターミナルに表示され、ターミナルがnginxの処理に占有されます。

使い分けのポイント

デタッチドモードは、長時間実行するバックグラウンドプロセスやサーバー用途に適しており、ターミナルを占有せずに他の作業を続けられます。一方、フォアグラウンドモードは、デバッグや一時的なスクリプト実行など、リアルタイムの出力が必要な場面で便利です。

それぞれのモードは、使用目的に応じて柔軟に使い分けてください。

タイトルとURLをコピーしました