docker コマンド例外「権限が拒否されました」の解決方法

docker コマンド例外「権限が拒否されました」の解決方法

Linuxシステムでは、dockerを新しくインストールし、次のようなコマンドを入力します。docker images

結果は異常でした。

簡単に言えば、現在のユーザーの接続は拒否されます。

解決策1:

管理者権限を使用し、コマンドの前にsudoを追加します

解決策2:

現在のユーザーをdockerユーザーグループに追加する

sudo groupadd docker #docker ユーザー グループを追加します。このユーザー グループはすでに存在している必要があります。sudo gpasswd -a $USER docker #現在のユーザーを docker ユーザー グループに追加します。newgrp docker #ユーザー グループ docker を更新します。

次にdockerイメージを実行します

これは普通に使えます

補足: Docker -v にはマウントされたディレクトリに対する権限がありません。 権限が拒否された場合の解決策

状況の説明

今日はdocker run -d -p 9091:8080 -v /home/daniu/docker/tomcat/webapps/:/usr/local/tomcat/webapps/ --name managertomcat daniu/mytomcatを使用しています。

パスをマウントした後、コンテナに入ります

root@08066d03a043:/usr/local/tomcat# cd webapps/
ルート@08066d03a043:/usr/local/tomcat/webapps# ls
ls: ディレクトリ '.' を開けません: 権限が拒否されました
ルート@08066d03a043:/usr/local/tomcat/webapps#

Web アプリを表示すると、権限がないというメッセージが表示されます。

理由:

Centos7 のセキュリティ モジュール selinux によって権限が無効になりました。

解決方法は3つあります。

1. 実行時に --privileged=true を追加する

[daniu@localhost tomcat]$ docker run -d -p 9091:8080 -v /home/daniu/docker/tomcat/webapps/:/usr/local/tomcat/webapps/ --privileged=true --name managertomcat xuhaixing/mytomcat
c512137b74f3366da73ff80fc1fd232cc76c95b52a4bab01f1f5d89d28185b28
[daniu@localhost tomcat]$ ls

2. selinuxを一時的にオフにしてから再度オンにする

[daniu@localhost tomcat]# setenforce 0
[daniu@localhost tomcat]# setenforce 1

3. Linuxルールを追加し、マウントするディレクトリをselinuxホワイトリストに追加します。

# セキュリティコンテキストを変更するための形式は次のとおりです: chcon [-R] [-t type] [-u user] [-r role] パラメータなしのファイルまたはディレクトリオプション: 
-R: このディレクトリの下にあるすべてのディレクトリも同時に変更されます。 
-t: セキュリティ ドキュメントのタイプ フィールドが続きます (例: httpd_sys_content_t)。 
-u : 続いて ID 識別子 (例: system_u) が続きます。 
-r: 次の通りの色、例: system_r
埋め込む:
chcon -Rt svirt_sandbox_file_t /home/daniu/docker/tomcat/webapps/

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

以下もご興味があるかもしれません:
  • Linux で Oracle がリスニングを開始するときに発生するエラー TNS: 権限が拒否されましたの解決方法
  • Apache 起動エラーの解決策: 権限が拒否されました: httpd: エラー ログ ファイルを開けませんでした
  • Python で権限が拒否された場合の解決策
  • 権限が拒否された場合の解決策

<<:  MySQLデータベースは重複データを削除し、メソッドインスタンスを1つだけ保持します

>>:  HTML フレームセットのサンプルコード

推薦する

MySQL ストアド プロシージャで if ステートメントを使用する詳細な例

この記事では、例を使用して、MySQL ストアド プロシージャでの if ステートメントの使用方法を...

jsはシンプルなカウントダウンを実装します

この記事の例では、参考までに簡単なカウントダウンを実装するためのjsの具体的なコードを共有しています...

iconfontアイコンライブラリをvueに導入するエレガントな実践記録

目次序文SVGを生成するSVGスプライトの紹介プロジェクトアイコンを取得するプロジェクトのセットアッ...

JS を使用してファイルを操作する (FileReader は --node の fs を読み取ります)

目次JS はファイルを読み取る FileReader書類イベントとメソッド基本的な使い方イベント処理...

React のネストされたコンポーネントの構築順序

目次Reactの公式サイトではライフサイクルの説明を見ることができます次に、ネストされたコンポーネン...

MySQLストレージ時間タイプの選択に関する問題の説明

MySQL では、datetime 型は通常、時間を保存するために使用されますが、現在では多くのシス...

CentOS8.0ネットワーク設定の実装

1. CentOS 7 と CentOS 8 のネットワーク構成の違い: VMware Workst...

JavaScript バブルソートの例

目次1. バブルソートとは何か2. 例を挙げるラウンド1:第2ラウンド:第3ラウンド:第4ラウンド:...

Dockerコンテナのデータを復元する方法

プロジェクトのテスト環境データベースのデータが失われてしまったので、記録しておきたいと思います。当時...

Tencent インタビュー: SQL ステートメントの実行が非常に遅くなる理由は何ですか? ---後悔シリーズは見ないで(推奨)

正直に言うと、この質問には MySQL のコア知識がかなり必要で、コンピュータ ネットワークの知識を...

Vueにおける混合継承の詳細な説明

目次混合継承の影響: 1. 継承Vue.extend メソッド​プロパティを拡張する2. ミックスイ...

Vuex のコアコンセプトと基本的な使用法の詳細な説明

目次導入始めるインストール①直接ダウンロードする方法②CND法③NPM方式④糸法NPMインストールの...

Linux で killall コマンドを使用してプロセスを終了する 8 つの例

Linux コマンドラインには、プロセスを強制終了するためのコマンドが多数用意されています。たとえば...

Windows でのシンプルな Mysql バックアップ BAT スクリプトの共有

序文この記事では、Windows で Mysql をバックアップするための簡単な BAT スクリプト...

ウェブページに埋め込まれた Flash と IE、FF、Maxthon の互換性の問題

いろいろ苦労した後、インターネットで検索したり、以前の会社のプロジェクトを探したり、他の人のプロジェ...