docker-compose.yml ファイルで './' 相対パスを許可する バージョン: '3' ... ボリューム: - ./init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro - ./mongo-volume:/data/db ... 現在のパスにある init-mongo.js ファイルは、コンテナー内の /docker-entrypoint-initdb.d/init-mongo.js にマウントされ、読み取り専用モードに設定されます。 現在のパスの下のmongo-volumeディレクトリはコンテナ/data/dbにマウントされます。mongo-volumeが存在しない場合は、ディレクトリが自動的に作成されます。 しかしdocker runの場合は上記のような相対パスは使用できません >>> docker run -d --restart always -p 27017-27019:27017-27019 -e MONGO_INITDB_DATABASE=job -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=root -v $PWD/init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro -v ./mongo-volume:/data/db --name my-mongo-container mongo docker: デーモンからのエラー応答: ./init-mongo.js を作成: 「./init-mongo.js」にはローカル ボリューム名に無効な文字が含まれています。「[a-zA-Z0-9][a-zA-Z0-9_.-]」のみが許可されます。ホスト ディレクトリを渡す場合は、絶対パスを使用してください。 「docker run --help」を参照してください。 ドット「.」を置き換えるには $PWD を使用する必要があります。 >>> docker run -d --restart always -p 27017-27019:27017-27019 -e MONGO_INITDB_DATABASE=job -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=root -v $PWD/init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro -v $PWD/mongo-volume:/data/db --name my-mongo-container mongo 3081e25a20fa8b2e95850897b3b32b08da298f73d7e458119fa3f2c85b45f020 補足: Docker -v にはマウントされたディレクトリに対する権限がありません 権限が拒否されました 1. 問題今日、docker を使用して redis をマウントすると、常にエラーが発生しました。 docker run -v /home/redis/redis.conf:/usr/local/etc/redis/redis.conf --name redis2 -p 6378:6379 redis redis-server /usr/local/etc/redis/redis.conf その後、エラーが報告され続けます:
2. トラブルシューティングのプロセスログも確認してください。 次に、設定ファイルが使用されていた場所を削除しました docker run -v /home/redis/redis.conf:/usr/local/etc/redis/redis.conf --name redis2 -p 6378:6379 redis 次にコンテナに入ります docker exec -it redis2 /bin/bash 次にマウントされたフォルダに移動します /usr/local/etc/redis をコピーします エラーが見つかりました:
つまり、許可がない 3. 原因と解決策3.1 理由Centos7のセキュリティモジュールselinuxは権限を無効にしています 3.2 解決策解決方法は3つあります。 1. 実行時に --privileged=true を追加する docker run -v /home/redis/redis.conf:/usr/local/etc/redis/redis.conf --name redis2 --privileged=true redis redis-server /usr/local/etc/redis/redis.conf 2. selinuxを一時的にオフにしてから再度オンにする [root@localhost tomcat]# setenforce 0 [root@localhost tomcat]# setenforce 1 3. Linuxルールを追加し、マウントするディレクトリをselinuxホワイトリストに追加します。 セキュリティテキストを変更する形式は次のとおりです。
パラメータなしのオプション: -R: このディレクトリの下にあるすべてのディレクトリも同時に変更されます。 -t: セキュリティ ドキュメントのタイプ フィールドが続きます (例: httpd_sys_content_t)。 -u : 続いて ID 識別子 (例: system_u) が続きます。 -r: 次の通りの色、例: system_r 埋め込む: chcon -Rt svirt_sandbox_file_t /home/redis/redis.conf 4. Dockerマウントに関する経験4.1 コンテナディレクトリは相対パスにできません 4.2 ホストディレクトリが存在しない場合は自動的に生成されます 4.3 ホストディレクトリが相対パスの場合はどうなりますか? この質問に対する答えは、docker inspect コマンドを使用してコンテナの「マウント」セクションを確認することで得られます。 上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。 以下もご興味があるかもしれません:
|
<<: CSS3 を使用して中心点の周りに要素を配置する方法の例
この記事は共有および集約することを歓迎します。全文を転載する必要はありません。著作権を尊重してくださ...
目次起源環境情報トラブルシューティングのプロセス要約する起源顧客は CentOS をベースにしたカス...
エンコーディングの理由により、Linux サーバーに中国語のファイルやディレクトリをアップロードまた...
まず、GIF 操作を見てみましょう。ケース1: スペースがフィルタリングされるスペースの代わりに角括...
オープンソース データベース アーキテクチャの設計原則01. 技術の選択最も使い慣れていて、最大限に...
ウェブフロントエンド1学生証名前性別年01張三男20 02李思女性21総人数60フォームのコンポーネ...
DML 操作とは、データベース内のテーブル レコードに対する操作を指し、主にテーブル レコードの挿入...
序文みなさんこんにちは。CSS ウィザードの alphardex です。この記事では、three.j...
docker-compose.yml ファイルで './' 相対パスを許可する バー...
この記事の著者@子木yoyoが個人ブログに投稿したものです。 Web ページでもモバイル アプリでも...
1. シナリオ表示Tomcat ログに次の例外情報が時々報告されます。何が起こっているのでしょうか...
1. 概要mysql-monitor MYSQL 監視ツール、最適化ツール、1 つの Java Sp...
目次1. インストール2. はじめに3. 使用4. 必要に応じてEChartsチャートとコンポーネン...
この記事では、MySQL 5.7.21のインストールとインストール中に発生した問題を参考までに紹介し...
<br />思想が東西に分かれていた時代、東洋の叡智を代表するものの一つとして「禅」は多...