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

推薦する

MySQL pt-slave-restart ツールの使い方の紹介

目次MySQL マスター スレーブ レプリケーション環境を設定する場合、マスター データベースとスレ...

ミニプログラムカスタムタブバーコンポーネントのカプセル化

この記事の例では、ミニプログラムのカスタムタブバーコンポーネントをカプセル化するための具体的なコード...

Mysql の一時テーブルとパーティションテーブルの違いの詳細な説明

一時テーブルとメモリテーブルメモリ テーブルとは、メモリ エンジンを使用するテーブルを指します。テー...

CentOS6.9 での MySQL 5.7.17 のインストールと設定のチュートリアル

CentOS6.9はMysql5.7をインストールします。参考までに、詳細は次のとおりです。 1. ...

Dockerプライベートウェアハウスの構築とインターフェース管理の詳細な説明

1. レジストリについて公式 Docker ハブは、パブリックイメージを管理するのに適した場所です。...

Linux の一般的なハードディスク管理コマンドの紹介

目次1. dfコマンド2. duコマンド3. fsckファイルシステム修復コマンド4. ディスクステ...

ローカル フォルダー内の画像を読み込んで表示するための HTML サンプル コード

一つの目的Html ページでローカル フォルダーを選択すると、フォルダーとそのサブフォルダー内のすべ...

Quill エディタでカスタム HTML レコードを挿入する詳細な例

もう2020年です。飢えた人間は単純なテキストでは満足できなくなり、さまざまなスタイルの派手なテキス...

Nginx 急ぎ購入 電流制限構成 実装分析

ビジネス上のニーズにより、急ぎの購入が発生することが多いため、ロード バランシング フロント エンド...

@Font-face の基本的な使い方と、すべてのブラウザと互換性を持たせる方法

@Font-face 基本紹介: @font-face は、Web ページにカスタム フォントを表示...

VUEウォッチリスナーの基本的な使い方の詳しい説明

目次1. 次のコードはwatchの簡単な使用法です2. 即時監視3. ハンドラメソッド4. 深い属性...

WeChatアプレットがジグソーパズルゲームを実装

この記事では、WeChatアプレットでジグソーパズルゲームを実装するための具体的なコードを参考までに...

Ubuntu 16.04.4LTS に mininet をインストールする際に発生する問題と解決策

ミニネットMininet は軽量のソフトウェア定義ネットワークおよびテスト プラットフォームです。軽...

docker を使用してシンプルな C/C++ プログラムをデプロイする方法

1. まずhello-world.cppファイルを作成しますプログラムコードは次のとおりです。 #i...

数ステップでサイバーパンク2077風の視覚効果を実現するCSS

背景記事を始める前に、賽博朋克とは何か、賽博朋克2077とは何かを簡単に理解しましょう。サイバーパン...