docker v が機能しない場合の解決策: 1. コンテナーの実行時にコンテナーに権限を追加します; 2. selinux を一時的にオフにします; 3. selinux ルールを追加し、マウントするディレクトリをホワイトリストに追加します。
この記事の動作環境: ubuntu 18.04 システム、Docker バージョン 20.10.11、Dell G3 コンピューター。
docker v が動作しない場合はどうすればよいですか?
docker -v マウント後にサービスが起動できない問題について
私は最近 docker を学習しており、簡単な nginx イメージを作成しました。
再生可能なnginxを作成する必要があるため。したがって、操作を容易にするために、コンテナ内の構成ファイルをホストにマウントする必要があります。
しばらく作業した後、docker run に -v 属性が追加されていることがわかりました。サービスが開始されません。
ずっと悩んでいて、これの取り付けを検討してみました。
ついに問題の原因が判明したので、ここに記録します。理由は、CentOS7 のセキュリティ モジュール selinux がアクセス許可を無効にするためです。マウントされたディレクトリにアクセス許可がない問題を解決するには、少なくとも次の 3 つの方法があります。コンテナー、コンテナーに特権を追加します:
例: docker run -i -t
–privileged=true-v /home/docs:/src Waterchestnut/nodejs:0.12.02、selinux を一時的に終了します:
例: su -c
後で実行します:
docker run -i -t -v /home/docs:/src waterchestnut/nodejs:0.12.0
注: 後で selinux を再度有効にすることを忘れないでください。コマンド: su - c "setenforce 1 ”
3、selinux ルールを追加し、ホワイトリストにマウントするディレクトリを追加します:
例: chcon -Rt svirt_sandbox_file_t /home/docs
実行後:
docker run -i -t -v /home/docs:/src waterchestnut/nodejs:0.12.0
マウント権限を取得したら、正常に開始できます。
推奨学習: 「
以上がdocker v が動作しない場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。