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 ソング プログレス バーのサンプル コード

推薦する

JavaScript axiosのインストールとパッケージ化のケースの詳細な説明

1. axiosプラグインをダウンロードする cnpm インストール axios -S 2. mai...

JavaScript でネットワーク速度をテストする方法

目次序文ネットワーク速度のフロントエンド判定原理のまとめ1. img を読み込むか Ajax リクエ...

Oracle Rownum 書き込みに似た MySQL の詳細な例

Rownum は、Oracle での独自の書き込み方法です。Oracle では、rownum を使用...

MySQL インデックスのクイックガイド

MySQL インデックスの確立は、MySQL の効率的な操作にとって非常に重要です。インデックスによ...

MySQL の自動増分主キーが使い果たされた場合の対処方法

面接では、次のようなシナリオを経験する必要があります。インタビュアー: 「MySQL を使用したこと...

Apache ab を使用して HTTP パフォーマンス テストを実行する

MacにはApache環境が付属していますターミナルを開き、sudo apachectl -v と入...

Docker の NFS-Ganesha イメージを使用して NFS サーバーを構築する詳細なプロセス

目次1. NFS-Ganeshaの紹介2. NFS-Ganeshaの設定3. NFS-Ganesha...

MySQL の FIND_IN_SET() と IN の違いを簡単に分析します

以前、あるプロジェクトでMysql FIND_IN_SET関数を使用したことがありますが、非常に便利...

VMware 仮想マシンのネットワークの問題の解決方法

目次1. 問題の説明2. 問題解決1. 仮想マシンシステムのインストール時にネットワークがない場合2...

DockerコンテナでのMySQLデータのインポート/エクスポートの詳細な説明

序文MySQL データのインポートとエクスポートは mysqldump コマンドで解決できることは誰...

優れた登録プロセスの手順

ウェブサイトにとって、これは最も基本的な機能です。それでは、登録プロセスに含まれる手順を見てみましょ...

Echarts 凡例コンポーネントのプロパティとソース コード

凡例コンポーネントは、ECharts でよく使用されるコンポーネントです。シリーズ マーカーの名前を...

JavaScript の setTimeout と setTimeinterval の使用例の説明

どちらの方法も、一定時間後に JavaScript コードを実行するために使用できますが、それぞれに...

ウェブサイトがhttpsを有効にした後のSSLのセキュリティ構成と検出

最近のウェブサイトでは SSL を有効にするのが標準となっています。ただし、SSL を設定した後も、...

React サーバーサイドレンダリング原則の分析と実践

ほとんどの人は、サーバーサイド レンダリング (SSR と呼んでいます) の概念について聞いたことが...