dockerでマウントされたディレクトリが読み書きできない問題を解決する

dockerでマウントされたディレクトリが読み書きできない問題を解決する

次のコマンドを使用してコンテナを作成し、ローカルの /home/dock/Downloads ディレクトリをコンテナ内の /usr/Downloads にマウントします。

[root@docker ~]# docker run -it -v /home/dock/Downloads:/usr/Downloads ubuntu /bin/bash

Centosで作成すると、以下の問題が発生します

root@637fe9ea94f0:/usr/ダウンロード# ls
ls: ディレクトリ '.' を開けません: 権限が拒否されました

解決:

理由は、CentOS7 のセキュリティ モジュール selinux によって権限が無効になっているためです。

マウントされたディレクトリに権限がない問題を解決するには、いくつかの方法があります。

1. コンテナを実行するときに、コンテナに権限を追加し、--privileged=true パラメータを追加します。

docker run -i -t -v /soft:/soft --privileged=true 637fe9ea94f0 /bin/bash

2. selinuxを一時的にオフにします。

強制0を設定する

3. selinuxルールを追加し、マウントするディレクトリのセキュリティテキストを変更します。

補足: dockerがフォルダをマウントした後は、アクセスできず、権限もなくなります。

docker runに入った後、マウントされたフォルダにアクセスできず、権限がありません

例えば:

sudo nvidia-docker run -p 8090:8888 -p 8091:80 -p 8092:6666 --name=pytorch0.4 -v ~/workspace:/root/workspace -i --shm-size 31G -t dsksd/pytorch:0.4.1 /bin/bash

ホストのワークスペース フォルダーはコンテナーの /root/workspace フォルダーにマウントされていますが、ホスト上のワークスペース フォルダーにデータを書き込むことはできません。現時点ではフォルダの所有者はルートであるためです。

次のコマンドを実行できます:

sudo chown -R $USER フォルダの場所 (/workspace)

フォルダーは読み取りと書き込みが可能です。ただし、再起動後に上記のコマンドを再実行する必要があります。

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • Docker コンテナのマウントディレクトリ操作の表示
  • docker run で ./ 相対パスを使用してファイルまたはディレクトリをマウントできない問題を解決する
  • DockerコンテナにNFS共有ディレクトリをマウントする実装
  • Docker - コンテナマウントディレクトリを変更する3つの方法のまとめ
  • Dockerはローカルディレクトリとデータボリュームコンテナ操作をマウントします
  • Dockerはelasticsearchイメージを起動し、ディレクトリをマウントした後にエラーを解決します
  • docker windows10共有ディレクトリのマウント失敗の解決策

<<:  JS に依存せずにレスポンシブ レイアウトを実現する CSS3 モバイル vw+rem メソッド

>>:  きちんとしたHTMLマークアップを使用してページを構築します

推薦する

Docker 構成 Alibaba Cloud イメージアクセラレーション プル実装

今日はdockerを使ってイメージをpullしたのですが、速度が悪くて見れず最後まで待ち続けました。...

H5ゲームをnginxサーバーにデプロイする方法の詳細な説明

自己学習型ゲーム開発の道において、最も充実した瞬間は、自分でミニゲームを作り、友達と共有して試しにプ...

MySQL クエリの重複データ (重複データを削除し、ID が最も小さいデータのみを保持します)

開発の背景:最近、私はバッチ データを MySQL データベースにインポートする機能に取り組んでいま...

JSプロトタイプとプロトタイプチェーンについての簡単な説明

目次1. プロトタイプ2. プロトタイプポインタ: __proto__要約する1. プロトタイプJa...

Linux での MySQL 5.6.24 (バ​​イナリ) 自動インストール スクリプト

この記事では、Linux環境でのmysql5.6.24自動インストールスクリプトコードを参考までに共...

私が遭遇したIE8の互換性に関する注意事項

1. IE8 の getElementById は id のみをサポートし、name はサポートしま...

Html+CSS 描画三角形アイコン

まずはレンダリングを見てみましょう: XML/HTML コードコンテンツをクリップボードにコピー&l...

Vueはソースコード付きのリファレンスライブラリのメソッドを使用します

monaco-editor-vueの公式ソースコードは次のとおりです。インデックス 'mon...

雨滴効果を実現する JavaScript キャンバス

この記事の例では、雨滴効果を実現するためのキャンバスの具体的なコードを参考までに共有しています。具体...

MySQL関数の簡単な紹介

目次1. 数学関数2. 文字列関数3. 日付関数4. 暗号化機能主な MySQL 関数は次のように紹...

Mac で docker と kubectl の自動補完コマンドを追加する方法

kubectl の紹介kubectl は、k8s クラスターを操作するためのコマンドライン ツールで...

VMware + Ubuntu18.04 による Hadoop クラスタ環境の構築に関するグラフィック チュートリアル

目次序文VMware クローン仮想マシン (準備、3 台の仮想マシンのクローン、1 台のマスター、2...

Dockerのインストール、イメージの作成、NodeJSプログラムの読み込みと実行の詳細なプロセス

システム環境: Windows 7 1. DockerをインストールするDocker公式サイトからd...

DIV共通属性コレクション

1. 物件リストコードをコピーコードは次のとおりです。色: #999999 テキスト色フォントファミ...

Elimination の JavaScript ソースコード

ゲームのソースコードのダウンロードアドレスを取得するためのJavaScript:クリックしてソースコ...