[解決済み] dockerイメージのログを見るには?
2022-03-05 03:49:59
質問
dockerの世界では、dockerコンテナ(つまり、実行中のイメージ)のログを簡単に見ることができます。しかし、イメージ作成時には、通常、複数のコマンドを発行します。例えば、nodeプロジェクトでnpm installコマンドを実行します。そのようなコマンドのログも見ることができれば有益です。ドキュメントをざっと探したのですが、dockerイメージのログを取得する方法は見つかりませんでした。可能でしょうか?
解決方法は?
最も簡単な方法は
tee
を使用して、すべてのコマンド出力のコピーをログファイルに送信します。もし画像に添付したいのであれば、画像の中のログファイルに、以下のような感じで実行コマンドを出力してください。
RUN my-install-cmd | tee /logs/my-install-cmd.log
そして、一回限りのコンテナを素早く実行して、ログの内容を見ることができます。
docker run --rm my-image cat /logs/my-install-cmd.log
画像に添付されたログが必要ない場合は、JHarrisが言うように、ビルドコマンドを1回変更するだけで、すべてのビルドの出力をログに記録できます(実行コマンドをたくさん変更するのではありません)。
docker build -t my-image . | tee my-image.build.log
を使用せずにビルドした場合
--rm=true
で確認できるログがあります。
docker logs $container_id
そして最後に忘れてはいけないのが、画像内のレイヤーの履歴です。各コマンドの出力は表示されませんが、出力を記録しないコマンドや、特にキャッシュを多用している場合に各レイヤーがどのビルドから来たものかを知るのに便利な機能です。
docker history my-image
関連
-
[解決済み] Dockerコンテナの中から、マシンのローカルホストに接続するにはどうすればよいですか?
-
[解決済み] Docker Dockerコンテナからホストへのファイルコピー
-
[解決済み] ホストからDockerコンテナにファイルをコピーする方法は?
-
[解決済み] リポジトリを使用せずに、あるホストから別のホストにDockerイメージをコピーする方法
-
[解決済み] Dockerでイメージのクリーンビルドを強制する方法
-
[解決済み] Dockerイメージはホストマシン上のどこに保存されていますか?
-
[解決済み] 古くて使われていないDockerイメージを削除する方法
-
[解決済み】Dockerは仮想マシンとどう違うの?
-
[解決済み】Dockerイメージとコンテナの違いは何ですか?
-
[解決済み】dockerイメージのインストールディレクトリを変更する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] docker compose でホストネットワークを使用するには?
-
[解決済み] OOM例外がない場合、Docker-composeの終了コードは137になる
-
[解決済み] ファイル全体を見たり、ファイル全体を走査するのを待たずに、ログの現在の位置からドッカーログをテールする方法
-
[解決済み] docker-composeで既存のイメージを更新する方法は?
-
[解決済み] アルパインリナックスにGoをインストールする方法
-
[解決済み] Dockerのバージョンを判断する方法 [重複]について
-
[解決済み] 引数を受け取るシェルスクリプトでDocker Runのエントリポイントをオーバーライドする
-
[解決済み】Docker remove <none> TAGイメージ
-
[解決済み】docker-composeからdockerに接続できない。
-
[解決済み】Dockerは使用量が多いのに、Dockerコンテナがない