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+サードパーティのスライディング検証コードアクセスの実装

推薦する

Apache POIの基本的な使い方の詳しい説明

目次基本的な紹介入門テスト (Excel ファイルからのデータの読み取り)ステップ1: Maven座...

JavaScript Canvas で三目並べゲームを実装

この記事では、JavaScript Canvasで三目並べゲームを実装するための具体的なコードを参考...

XHTML CSSを使用して正式なブログを書く

ブログの正式名称は「Web log」で、中国語で「ネットワークログ」を意味します。後にブログに短縮さ...

HTML入門チュートリアル HTMLタグ記号をすぐにマスター

補足<br />HTML について何も知らず、HTML の始め方がまだわからない場合は、...

MySQLサーバーは--read-onlyオプションで実行されているため、このステートメントを実行できません

会議中に同僚から開発ライブラリを書き込めないとの報告を受けました。エラー メッセージは次のとおりでし...

JavaScript は div マウス ドラッグ効果を実装します

この記事では、divマウスドラッグ効果を実現するためのJavaScriptの具体的なコードを参考まで...

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

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

hrefを使用すると、リンクをクリックするだけでページ上の特定の場所にジャンプできます。

ページ内の a タグをクリックした後、ページ内の対応する場所にジャンプするようにします。方法は非常に...

DockerのTLS(SSL)証明書の有効期限の問題を解決する

問題現象: [root@localhost ~]# docker イメージをプル xxx.com.c...

JavaScript でエラーが発生しやすい演算子操作の概要

目次算術演算子異常状況1: 特殊値リテラルを含む操作異常な状況 2: 他の種類のデータが数学演算に関...

Windows 10 システムで nginx ファイル サーバーを構成するためのグラフィック チュートリアル

Nginx の公式 Web サイトから Windows バージョンの Nginx をダウンロードしま...

CentOS7にJDK8をrpmモードでインストールする

CentOS 7が正常にインストールされると、OpenJDKのJREがデフォルトでインストールされて...

MySQLデータベースにパスワードを入力した後にフラッシュバックする問題の解決策

パスワード入力後にMySQLデータベースがクラッシュする問題と解決策1 ケースの説明最近、基本的な機...

Alibaba Cloud ServerにMySQLデータベースをインストールする方法の詳細な説明

序文学習中に Zookeeper をインストールする必要があったため、仮想マシンに常に問題が発生した...