3つのDocker Nginxログの処理の詳細な説明

3つのDocker Nginxログの処理の詳細な説明

社内の同僚は Nginx ログの標準出力、つまりコンソール経由の処理を必要としているため、まずログをファイルに書き込む必要があります。

エラーログ /var/log/nginx/error.log

アクセスログ /var/log/nginx/access.log

対処方法は 2 つあります。

1. ホスト パスを作成し、それをコンテナー内の nginx ログ パスにマウントします。

docker 実行 --name docker_nginx -d -p 80:80\ 
 -v /var/log/nginx/log:/var/log/nginx\
--!-v: ログディレクトリをマウントします

2. 2 番目は、ログ ファイルにアクセスして標準出力に直接出力する方法です。

走る \

  ln -sf /dev/stdout /var/log/nginx/access.log && \    
  ln -sf /dev/stderr /var/log/nginx/error.log 

2番目の方が良いと聞きました! ! !

これでログの問題は解決しました!

補足知識:コンテナログ出力のないカスタム docker nginx イメージ

たまたま、仕事環境用にnginxイメージをカスタマイズする必要がありました。生成後、コンテナに関連するnginxログ出力がないことがわかりました。

env_centos:latest から
 
nginx.repo を /etc/yum.repos.d/ にコピーします。 
# ログ出力はstdoutにリダイレクトする必要があることに注意してください。そうしないと、コンテナのログ出力が表示されません。RUN \
  yum -y nginx httpd-tools をインストール && \
  mkdir -p /data/nginx_conf/upstream && \
  mkdir -p /data/nginx_conf/vhosts && \
  rm -f /etc/nginx/conf.d/default.conf && \
  ln -sf /dev/stdout /var/log/nginx/access.log && \ > この 2 行が鍵です。もちろん、これは nginx 構成ファイルと一致している必要があります。コピーしないでください。ln -sf /dev/stderr /var/log/nginx/error.log > この 2 行が鍵です。COPY nginx.conf /etc/nginx/nginx.conf
 
エクスポーズ80
#エクスポーズ 443
 
CMD ["nginx", "-g", "デーモンオフ;"]

最終的な効果は次のようになります

#docker exec test123 ls -l /var/log/nginx/
lrwxrwxrwx 1 root root 11 12月 29 10:51 access.log -> /dev/stdout
lrwxrwxrwx 1 root root 11 12月 29 10:51 error.log -> /dev/stderr

以上、3つのDocker Nginxログの処理について詳しく説明しましたが、これが編集者が皆さんに共有する内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COMを応援していただければ幸いです。

以下もご興味があるかもしれません:
  • 負荷分散と動的および静的分離操作を実現するDocker NginxコンテナとTomcatコンテナ
  • Dockerはnginxをデプロイし、フォルダとファイル操作をマウントします
  • Docker nginxは1つのホストを実装して複数のサイトを展開します
  • Docker デプロイメント nginx 実装プロセスのグラフィックとテキストによる詳細な説明
  • Docker イメージ + nginx を使用して Vue プロジェクトをデプロイする方法
  • Docker ベースの nginx ファイル サーバーを構築する方法と手順
  • Docker で Nginx イメージ サーバーを構築する方法
  • Docker Nginxコンテナの制作と展開の実装方法

<<:  MySQL マスタースレーブ同期、トランザクションロールバックの実装原理

>>:  vue+drf+サードパーティのスライディング検証コードアクセスの実装

推薦する

MySQL データをエクスポートおよびインポートするための HeidiSQL ツール

場合によっては、SQL へのデータのエクスポートとインポートを容易にするために、特定のツールを使用し...

Docker ベースの GitLab 環境をデプロイする方法と手順

注意:仮想マシンのメモリは2G以上が推奨され、 Alibaba Cloudのアクセラレーションイメー...

JavaScript オブジェクト (詳細)

目次JavaScript オブジェクト1. 定義2. オブジェクトの分類3. オブジェクトを定義する...

CocosCreator で http と WebSocket を使用する方法

目次1. HTTPGET 2. HTTP POSTウェブソケット4. Egretのhttpとwebs...

MySQL ステートメントを使用して、さまざまな整数が占めるバイト数とその最大値と最小値を調べる例

直接コード: タイプとして「bigint unsigned」、バイトとして「8」、max_numとし...

同じレベルの要素で Position:fixed と margin-top を一緒に使用する場合の CSS の問題

問題の説明CSS を使用して上部の固定効果を実現したいと思います。 margin-top と pos...

HTML でフロートをクリアする 2 つの方法

1. クリアフローティング法1前の親要素の高さを設定します。注: エンタープライズ開発では、可能であ...

SQL GROUP BYの詳細な説明と簡単な例

GROUP BY ステートメントは、Aggregate 関数と組み合わせて使用​​され、1 つ以上の...

CSS スティッキーフッター実装コード

この記事では、CSS スティッキー フッターの実装コードを紹介し、共有します。詳細は次のとおりです。...

MySQLデータベースの追加、削除、変更操作の詳細な説明

データの挿入テーブル名(列名1、列名2、列名3)の値(値1、値2、値3)に挿入します。ユーザーに(u...

VMware12 で Ubuntu19.04 デスクトップ版をインストールする (インストール チュートリアル)

1. 実験の説明仮想マシンに、 Ubuntu 19.04オペレーティングシステムを手動でインストー...

jQueryは動的タグイベントを実装します

この記事では、タグイベントを動的に追加するためのjQueryの具体的なコードを参考までに紹介します。...

Reactの状態管理の3つのルールのまとめ

目次序文No.1 焦点No.2 複雑な状態ロジックの抽出No.3 複数状態操作の抽出要約する序文Re...

Vueを使用して手書き署名機能を実装する

個人的な実装のスクリーンショット:インストール: npm インストール vue-esign --sa...

Linux で Docker を使用して MySQL をインストールする手順

テスターとして、学習プロセス中に Linux でソフトウェアをインストールする必要が頻繁にある場合が...