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

推薦する

jsは多次元配列を1次元配列に変換し、それを並べ替えます

目次まず多次元配列の平坦化についてお話しましょう方法 1: flat()方法 2: 空の文字列を連結...

Ubuntu 16.04 で PostgreSQL の起動を設定する方法

PostgreSQL はコンパイルされインストールされるため、起動時に起動するように設定する必要があ...

Linux システムでの vim プラグインのインストールの概要

目次vimプラグインマネージャーをインストールするプラグインデモを追加プラグインを削除するには: v...

VirtualBox に CentOS、JDK、Hadoop をインストールする詳細なチュートリアル

目次1. 前提条件1.1 サポートされているプラ​​ットフォーム1.2 jdk および hadoop...

vue+openlayer をベースにマップの集約と散乱効果を実現

目次序文:結果: 1.重合効果: 2. 散布効果:具体的な実装手順: 1. プロジェクトにOpenL...

Dockerはコンテナ外のコンテナ内でコマンドを実行します

コンテナ内でコマンドを実行したいが、コンテナに入りたくない場合があります。ではどうすればいいでしょう...

Vue2.x プロジェクトのパフォーマンス最適化のためのコード最適化の実装

目次1 v-ifとv-showの使用2. 計算と監視を区別する3 v-for トラバーサルでは、アイ...

位置のいくつかの巧妙な応用の詳細な説明:sticky スティッキーポジショニング

背景: position:sticky はスティッキー配置とも呼ばれます。スティッキー配置の要素は、...

CSS 画像アニメーション効果のサンプルコード(フォトフレーム)

この記事では、CSS 画像アニメーション効果(フォトフレーム)のサンプルコードを紹介し、皆さんと共有...

イメージの起動時にdocker runまたはdocker restartが自動的に終了する問題を解決します

コマンドを実行します: docker run --name centos8 -d centos /b...

MySQL ビューの原理と基本操作例

この記事では、例を使用して、MySQL ビューの原理と基本操作を説明します。ご参考までに、詳細は以下...

mysql 5.7.18 winx64 パスワード変更

MySQL 5.7.18 が正常にインストールされた後、バージョン 5.7 では空のパスワードでのロ...

Vue+js はビデオのフェードインとフェードアウト効果を実現します

Vue+jsはビデオのフェードインとフェードアウトを実現します。参考までに、具体的な内容は次のとおり...

CSS3 で六角形の境界線を実装するサンプルコード

一番外側の boxF は 120 度回転し、2 番目の boxS は -60 度回転し、3 番目の ...