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 indexof関数の使用手順

以下のように表示されます。 LOCATE(部分文字列、文字列)文字列 str 内の部分文字列 sub...

Vueのフィルターについて知っておくべきこと

目次序文フィルターとは何かフィルターの使い方グローバルフィルターローカルフィルターフィルターは直列に...

jQueryは時間セレクタを実装する

この記事の例では、参考までに時間セレクターを実装するためのjQueryの具体的なコードを共有していま...

Vueはメニューナビゲーションを実装するためにelement-uiを使用します

この記事では、Element-uiを使用してメニューナビゲーションを実装するVueの具体的なコードを...

js 基本構文と Maven プロジェクト構成チュートリアル ケース

目次1. jsステートメント2番目、js配列3. js関数4. メイヴンV. 結論1. jsステート...

5分でDockerをインストールする詳細な手順

CentOS に Docker をインストールするには、オペレーティング システムが CentOS ...

Centos7 に yum を使用して MySQL をインストールし、リモート接続を実現する方法

Centos7はyumを使用してMySQLをインストールし、リモート接続を実現する方法です。MySQ...

WeChatアプレットがログインインターフェースを実装

WeChatアプレットのログインインターフェースは参考までに実装されています。具体的な内容は次のとお...

ApacheとTomcatによるクラスタ環境構築プロセスの分析

実際、Apacheクラスタを構築するのは難しくありません。私もインターネットで情報を見つけて自分で設...

HTMLページをクリックしてダウンロードファイルを実装する2つの方法

1. <a>タグを使用して完了します <a href="/user/te...

nginx を使用してブルーグリーン デプロイメントをシミュレートする方法

この記事では、ブルーグリーン デプロイメントと、nginx を使用してブルーグリーン デプロイメント...

NginxとLuaによるグレースケールリリースの実装

memcachedをインストールする yum インストール -y memcached #memcac...

CentOS 7 環境でソースコードから MySQL 5.7 をインストールする方法

この記事では、CentOS 7 環境でソース コードから MySQL 5.7 をインストールする方法...

MySQL の重要なパフォーマンス インデックスの計算と最適化方法の概要

1 QPS 計算 (1 秒あたりのクエリ数) MyISAMエンジンベースのDBの場合 MySQL&g...

Linux コマンドラインのクイックヒント: ファイルの検索方法

私たちのコンピューターには、ディレクトリ、写真、ソース コードなどのファイルが保存されています。たく...