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 フレームセットのサンプルコード

推薦する

Vue のスロットとフィルターの詳細な説明

目次スロットスロットとは何ですか?スロットの内容コンパイルスコープフォールバックコンテンツ名前付きス...

MySql ログイン パスワードを忘れた場合とパスワードを忘れた場合の解決策

方法1: MySQL では、次のコマンド ラインで MySQL サーバーを起動することにより、アクセ...

VMWare ネットワーク アダプタの 3 つのモードの実装プロセスの分析

3つのモードブリッジ(ブリッジ モード)、NAT(ネットワーク アドレス変換モード)、ホストオンリー...

Linux ソースコードからのソケット (TCP) クライアント側での接続の例の詳細な説明

序文著者は、アプリケーションからフレームワーク、オペレーティング システムに至るまで、あらゆるコード...

各グループの最新データを取得するためにMySQLベースのグループを実装する

序文:グループ化関数はグループ内の最初のデータを取得しますが、各グループ内の最新のデータを取得する必...

最小限のルートファイルシステムを構築するためにbusyboxを移植するための詳細な手順

Busybox: 小さなコマンドが詰まったスイスアーミーナイフ。ステップ1: ディレクトリ構造を作成...

win10環境でDockerをインストールする実装

1. Docker公式サイトにアクセスするまず、Dockerの公式ウェブサイトにアクセスして、最新の...

WMLとは何ですか?

WML (ワイヤレス マークアップ言語)。これは HTML から派生したマークアップ言語ですが、W...

MySQLテーブル名の大文字と小文字を区別しない設定方法の詳細な説明

デフォルトでは、Linux の MySQL はテーブル名の大文字と小文字を区別します。 MySQL ...

SpringBoot プロジェクトの Docker クイック デプロイメントの紹介

1. Dockerをインストールするまず Linux 環境を開き、次のコマンドを入力してインストール...

HTML をホームページとして設定し、お気に入りに追加_Powernode Java Academy

IE ブラウザで「ホームページとして設定」および「お気に入りに追加」機能を実装する方法解決:指定さ...

DOSBox を起動後に自動的にコマンドを実行する方法

DOSBox を使用すると、Windows で DOS をシミュレートし、楽しい作業を行うことができ...

CentOS 8 に Docker をインストールする詳細なチュートリアル

1. 以前のバージョン yum 削除 docker docker-client docker-cli...

WindowsとLinux間でファイルを転送する方法

WindowsとLinux間のファイル転送(1)WinSCPを使用して、WindowsファイルをLi...

TypeScript の Enum が問題となる理由

目次どうしたの?いつ使うか列挙の数を制御するビット値コントロールインデックス非数値列挙結論はType...