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インデックスが使用されない状況のまとめ

MySQL のインデックスの種類一般的に、次の 4 つのカテゴリに分類できます。通常のインデックス:...

Centos7でファイルをバックアップするときは、バックアップファイルにバックアップの日付を追加します

Linux は、システム内のデバイス、インターフェース、ファイル、スタートアップ、アプリケーション ...

HTML 基本要約推奨事項 (テキスト形式)

HTMLテキスト書式タグ 標簽 描述 <b> 定義粗體文本 <em> 呈現...

MySQL の null 制約のケースの説明

目次テーブルを作成するときにNOT NULL制約を設定するテーブルを変更するときに非NULL制約を追...

Mysql GTID Mha 設定方法

Gtid + Mha + Binlog サーバー構成: 1: テスト環境OS: CentOS 6.5...

Docker コンテナにデータベースをデプロイする場合の欠点は何ですか?

序文Docker は過去 2 年間で非常に人気が高まっています。開発者はすべてのアプリケーションとソ...

MySQL パーティション テーブルの基本入門チュートリアル

序文最近のプロジェクトでは、大量のデータを保存する必要があり、このデータには有効期限があります。クエ...

Docker で Jenkins サービスを構築する例

画像をプルする root@EricZhou-MateBookProX: docker pull je...

CocosCreator 一般的なフレームワーク設計リソース管理

目次Cocos Creator のリソース管理に関する問題リソースの依存関係リソースの使用レスローダ...

MySQL のフィールドに一意のインデックスを追加および削除する方法

1. PRIMARY KEY(主キーインデックス)を追加するmysql>ALTER TABLE...

MySql テーブル、データベース、シャーディング、パーティショニングの知識の詳細な説明

1. はじめにデータベース内のデータ量が一定レベルに達すると、システムパフォーマンスのボトルネックを...

HTTPS の有効化に関する経験の共有

国内のネットワーク環境が悪化し続ける中、さまざまな改ざんや乗っ取りが後を絶たず、サイト全体をHTTP...

Linuxで大きなファイルを素早くコピーする方法

データをコピーリモートでデータをコピーする場合、通常は rsync コマンドを使用しますが、小さなフ...

mysql 基本操作文コマンドの詳細な説明

1. MySQLに接続するフォーマット: mysql -h ホストアドレス -u ユーザー名 -p ...