logsコマンドの使い方の紹介ページです。ver18.09.0に対応しております。このコマンドは、コンテナの標準出力及びエラー出力の内容を、コマンドの実行結果として出力することが可能です。コンテナの標準出力には、通常、コンテナ内のPID(プロセスID)が1番に割り当てられているプロセスの出力がアサインされます。本記事では、コンテナの標準出力に、自由に出力情報を送れるように、シェル(bash)をプロセス1番として起動します。logsの出力内容として表示されることになります。logsの説明ページに記載されてました。それでは以下で詳細に解説いたします。以下の実例は、CentOSの公式イメージにより起動したコンテナ(testvm)を使用します。bash」で起動します。logsコマンドでログ情報が出力可能な環境であることを確認します。inspectコマンドを使用します。testvm実行結果の中の「LogConfig:」の値を確認します。logsコマンドを利用可能な条件となっております。logsコマンドを利用可能であることが確認できました。ロギングドライバーの設定は、コンテナの生成時もしくは起動時に「--log-opt」で指定することが可能です。ConfigのTypeの値は「json-file」でした。よって、デフォルトは「json-file」と思われます。logsコマンドでログ出力の確認を行うテスト用のコンテナを起動します。bashこのコンテナは、プロセスIDが1番のプロセスとしてbashが起動されてますので、bashの標準出力及び標準エラー出力の内容がコンテナのログとして出力されます。logsコマンドを実行してみます。testvmなにも出力されません。コンテナが起動された直後ですので、bashはなにも出力してません。logsコマンドを実行してもなにも出力されません。attachコマンドで接続してみます。attachコマンドの詳細は本記事では省略させていただきますが、簡単に言いますと、コンテナの標準入出力及びエラー出力を、dockerホストと接続させるためのコマンドです。attachコマンドを実行することによってDockerホスト上に出力されたものです。よって、このプロンプトに入力したコマンドは、コンテナ内のbashで実行され、その出力はDockerホスト上に出力されます。/var/log」コマンドを実行してみます。/]#コンテナ内の/var/logディレクトリの内容が出力されました。一つ、わざとエラーになるような適当な文字列も実行しておきます。logsコマンドを実行するために、コンテナtestvmとの接続を解除します。「Ctrl+p」と「Ctrl+q」を順に押すことで解除されます。logsコマンドを実行してみます。testvm先ほどはなにも出力されませんでしたが、今度は以下のように、先ほどコンテナ内のbashで実行した内容が出力されました。/]#この内容は、コンテナtestvm内のbashの標準出力及びエラー出力から出力された内容です。ログに記録されていることが解ると思います。(ちなみに標準エラー出力の確認を行うためにわざとエラーを出力させてみました)標準出力や標準エラー出力には、しばしば重大なメッセージが出力されることがあります。logsコマンドでコンテナの出力メッセージを確認することをおすすめします。logsコマンドを実行した場合は、格納されているログが全量出力されます。logsコマンドの処理は終了します。logsコマンドに「-f」若しくは「--follow=true」オプションを付けて実行した場合、ログを全量出力し終わっても、コマンドの処理は終了せず、新規にログが発生すると、リアルタイムにそのログを出力します。Linuxのtailコマンドをご存知の方は、「-f」オプションと同じ使い方になります。以下の内容は、terminalを2つ使用して行います。logsコマンドを実行するterminalです。1つ目のterminalで以下のコマンドを実行します。testvmもう1つのterminalで以下のコマンドを実行します。testvm「-f」を付けて実行しますと、ログは全量出力されても、コマンドは終了しません。この状態で、1つ目のterminal(コンテナにattachした方)のプロンプトで、以下のようにpsコマンドを実行してみます。logsコマンドを実行した方)に、同時に同じ内容が出力されます。-ef対象のコンテナから出力があった場合、それを出力し続けるようになります。あるコンテナの管理用terminalで、コンテナのログをリアルタイムに監視したい場合などに便利です。ログの出力を終わらせる場合は「Ctrl+c」を押してください。logsコマンドに「-t」もしくは「--timestamps=true」を付けて実行します。testvmこのオプションを付けて実行した場合、ログは、例えば、以下のように出力されます。exit各行に、ログが出力された時刻のタイムスタンプが追加されてます。このタイムスタンプは、コンテナ内で指定したタイムゾーンの時刻で出力されます。今回の検証で使用したコンテナのタイムゾーンは無指定ですので、デフォルトのGMTの時刻で出力されてます。タイムスタンプは、日付と時刻の情報が記録されてますが、時刻はナノ秒まで記録されてます。プログラミングのデバッグを行う場合などはうれしい情報ではないでしょうか。指定した時点より後のログを出力する「--since」オプションは、指定した日時より後、もしくは指定した時間前の時点より後のログを表示させることが可能です。以下のコマンドは、指定した日時より後のログを表示する場合です。testvmこのコマンドは、2015年12月30日15時8分より後に出力されたログを出力します。指定した日時より後のログが出力されていることが確認しやすいように、「-t」も付与して実行してます。timestamp(1970/1/1からの経過時間(秒))などが使用可能です。次に、指定した期間のログを表示する場合です。testvmこのコマンドを実行しますと、指定した時間前(1時間30分前)の時点より後のログが出力されます。指定した時点より前のログを出力する「--until」オプションは、指定した日時より前、もしくは指定した時間前の時点より前のログを表示させることが可能です。以下のコマンドは、指定した日時より前のログを表示する場合です。testvmこのコマンドは、2015年12月30日15時8分より前に出力されたログを出力します。指定した日時より前のログが出力されていることが確認しやすいように、「-t」も付与して実行してます。timestamp(1970/1/1からの経過時間(秒))などが使用可能です。次に、指定した期間のログを表示する場合です。testvmこのコマンドを実行しますと、指定した時間前(1時間30分前)の時点より前のログが出力されます。出力する行数を指定する「--tail」オプションは、ログの最後の出力(最新の出力行)から、指定した行数のログをさかのぼって出力することが出来ます。以下のコマンドは、コンテナtestvmのログの最後の出力から10行分出力されます。testvmUNIXのtailコマンドをご存知の方はお馴染みだと思います。logsコマンドの紹介を終わります。ご指摘、ご要望などが御座いましたらコメントいただけるとうれしいです。他のDockerコマンドの実例付紹介記事は、本サイト内の別記事「Dockerのコマンドの一覧(CE対応版)(オリジナルな実例付き)」をご参照ください。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。テニス、作品鑑賞(映画、アニメ、ドラマ、絵画など)、讃岐うどん食べ歩き。コンピュータ業界に身を置く中年おやじです。世の中にはまだ自分が知らない情報があふれていて、知っているつもりでも全体の半分も知らないことがいっぱいあります。見つけた情報はGoogleKeepにメモる毎日です。ある日、自分が良いと思うことは、同じように感じる方も、数は少ないかもしれないけどいるはず、と思いまして、そのことが本サイト「めもたんす」を作るきっかけとなりました。自分がいいなと思ったことを記事にまとめたサイトです。technology.。