dockerログマウントの問題を解決する

dockerログマウントの問題を解決する

重要なのは、ローカルサーバーに書き込み権限がないことです

キーはここにあります(アクセス拒否)。私は肯定的な側面を見ていません。構成ログファイルに問題があると思いました。次にいくつかの例外を示します

10:35:09,498 |-ch.qos.logback.core.rolling.RollingFileAppender[FILE] でエラーが発生し、openFile(null,true) の呼び出しに失敗しました。java.io.FileNotFoundException: logs/bandwidth.log.2019-04-25.log (権限が拒否されました)
    java.io.FileNotFoundException: logs/bandwidth.log.2019-04-25.log (アクセスが拒否されました)
    java.io.FileOutputStream.open0(ネイティブメソッド)
    java.io.FileOutputStream.open(FileOutputStream.java:270) で
    java.io.FileOutputStream.<init>(FileOutputStream.java:213) で
    ch.qos.logback.core.recovery.ResilientFileOutputStream.<init>(ResilientFileOutputStream.java:26) で
    ch.qos.logback.core.FileAppender.openFile(FileAppender.java:204) で
    ch.qos.logback.core.FileAppender.start(FileAppender.java:127) で
    ch.qos.logback.core.rolling.RollingFileAppender.start(RollingFileAppender.java:100) で
    ch.qos.logback.core.joran.action.AppenderAction.end(AppenderAction.java:90) で
    ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:309) で
    ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:193) で

理由が本当にわかるまで何度も試しました。インターネットで見たものからヒントを得たのもこの方法です。次のコマンドを使って完璧に解決できたことに皆さんも気づいてくれると嬉しいです。

docker run -it --privileged=true -v /dockerlogs:/app/logs -d -p 5080:5080 82edb4bbc79b

ホスト上の既存のディレクトリをマウントした後、コンテナ内で操作すると「アクセスが拒否されました」と報告される

これは 2 つの方法で解決できます。

1> selinuxをオフにします。

一時シャットダウン: # setenforce 0

永続的に無効にする: /etc/sysconfig/selinux ファイルを変更し、SELINUX の値を無効に設定します。

2> コンテナを特権モードで起動する

--privileged パラメータの指定

のように:

# docker run -it --privileged=true -v /test:/softlogs

追加知識: docker -v はログをホストにマウントします

今日はDockerを使ってvsftpイメージをpullして実行しました。このコンテナのログをホストマシンにマウントして見やすくしたかったのですが、結果的にログが出ませんでした。Baiduで長時間検索しましたが原因がわかりませんでした。

最終的に、次のように、まずホスト マシンのマウント ディレクトリにログと同じ名前の新しいファイルを作成する必要があることがわかりました。

上記は私のコンテナログの場所です

1. 最初はコンテナを実行して、このようにログをマウントしましたが(通常はマウントできるのですが、これは正常ではありません~~~)、ログが出ませんでした。

docker run -d -v /home/ftp:/home/vsftpd -p 20:20 -p 21:21 -p 21100-21110:21100-21110 -v /home/logs/:/var/log/vsftpd/ -e FTP_USER=cqs -e FTP_PASS=chaoshiye@2020 --name vsftpd fauria/vsftpd

2. 実際の解決策は、ホストのマウント ディレクトリに vsftpd.log ファイルを作成し、上記のマウントを実行すると成功します。

docker ログマウントの問題を解決する上記の記事は、編集者が皆さんと共有するすべての内容です。 皆さんの参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Docker コンテナのマウントディレクトリ操作の表示
  • docker run で ./ 相対パスを使用してファイルまたはディレクトリをマウントできない問題を解決する
  • DockerコンテナにNFS共有ディレクトリをマウントする実装
  • Docker - コンテナマウントディレクトリを変更する3つの方法のまとめ
  • Dockerはローカルディレクトリとデータボリュームコンテナ操作をマウントします
  • Dockerはelasticsearchイメージを起動し、ディレクトリをマウントした後にエラーを解決します
  • dockerでマウントされたディレクトリが読み書きできない問題を解決する

<<:  HTML チュートリアル: 順序付きリスト

>>:  Vue ソング プログレス バーのサンプル コード

推薦する

ピクセルを包括的なブランド体験に変えるヒント

編集者:この記事では、インタラクティブデザインがブランドコミュニケーションチェーン全体で果たすべき役...

MacOS Catalina アップグレード後の VMware ブラック スクリーン問題に対する完璧な解決策の詳細な説明

MacOS Catalina アップグレード後の VMware ブラック スクリーンに対する完璧なソ...

Vue の高度なコンポーネント機能コンポーネントの使用シナリオとソースコード分析

目次導入使用シナリオソースコード分析要約する導入Vue は、コンポーネントをステートレスかつインスタ...

ウェブページコンテンツの閲覧設計手法に関する議論

<br />コンテンツ ページの記事の場合、記事が長すぎる場合やカテゴリ (ランキング)...

Nginx10m+の高並列カーネル最適化に関する簡単な説明

高い同時実行性とは何ですか?デフォルトの Linux カーネル パラメータは、最も一般的なシナリオ向...

js オプション連鎖演算子の使用

序文オプションの連鎖演算子 (?.) を使用すると、チェーン内の各参照が有効であることを明示的に検証...

Vueはシンプルなコメント機能を実装します

この記事では、Vueの簡単なコメント機能を実装するための具体的なコードを参考までに共有します。具体的...

JavaScript setinterval 1秒遅延ソリューション

setinterval を使用すると、ページを開いた直後に 1 秒の遅延後に実行されることがわかりま...

HTML チュートリアル: 画像のサイズ、配置、間隔、境界線の属性を変更する方法

画像タグ: <img> ページに画像を挿入するには、「src」属性を持つ「img」タグを...

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

ビンログBinLog は、データベース テーブル構造の変更 (テーブルの作成、変更など) とテーブル...

CSSスクロールバースタイル設定の実装

Webkit スクロールバー スタイルのリセット1. スクロールバーには、スクロールバー ボタンとト...

MySQL の時間タイプとモードの詳細

目次1. MySQL の時刻型2. タイムゾーンを確認する3. 不正な時間値4. 厳密モード5. 事...

MySQL 子テーブルで外部キー制約チェックを無効にする方法

準備する:教師テーブルと生徒テーブルを定義し、生徒テーブルで教師テーブルIDを参照します。テーブルt...

LinuxのバックグラウンドでPythonプログラムを実行するいくつかの方法

1. 最初の方法は、unhup コマンドを直接使用してプログラムをバックグラウンドで実行することです...

MySQLのさまざまなロックの概念的理解

楽観的ロック楽観的ロックは、主にデータ バージョン記録メカニズムに基づいて実装され、通常はデータベー...