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

推薦する

js 実行コンテキストとスコープの概要

目次序文文章1. JavaScriptコードの実行プロセスに関連する概念2. 実行コンテキストと実行...

MySQL 8.0.15 のインストールと設定方法のグラフィックチュートリアル (Win10 Home バージョン 64)

超初心者の私は、MySQL を学び始めたばかりで、インストール プロセス中に多くの問題に遭遇しました...

キャンバス操作プラグイン fabric.js の使い方を詳しく解説

Fabric.js は非常に便利なキャンバス操作プラグインです。ここでは、日常のプロジェクトで使用さ...

Vue2.x および Vue3.x のカスタム命令の使用方法とフック関数の原理を理解する

目次Vue2.x の使用法グローバル登録部分登録使用フック機能フック関数のパラメータVue3.x の...

テキストエリア テキストエリアの幅と高さ 幅と高さの自動適応実装コード

コードをコピーコードは次のとおりです。 <HTML> <ヘッド> <T...

HTMLのマーキータグは、シームレスなスクロールマーキー効果を実現します。

<marquee> タグはペアで表示されるタグです。最初のタグ <marquee...

SQL Server データベース エラー 5123 の解決方法

なぜなら、SQL Server 2005 に基づくデータベース チュートリアルがあり、そこで使用され...

MySQL の複数テーブル関連付け 1 対多クエリを使用して最新のデータを取得する方法の例

この記事では、MySQL で複数のテーブルを使用して 1 対多のクエリを使用して最新のデータを取得す...

Vueは2つのルーティング許可制御メソッドを実装しています

目次方法 1: ルーティング メタ情報 (meta)方法 2: ルーティング テーブルを動的に生成す...

MySQL ルート パスワードをリセットするときに発生する「不明な列 'password'」問題を解決する方法

夜にMACの電源を入れたところ、突然ルートアカウントがMySQLに正常にログインできなくなったため、...

VMware 仮想マシンに CentOS と Qt をインストールするチュートリアル図

VMware のインストールパッケージのインストールダウンロードアドレス: https://www....

FileZilla_Server:425 データ接続を開けない問題を解決する方法

FileZilla Serverをサーバーにインストールすると、425データ接続を開けない問題が発生...

Vueルーティングコンポーネントでパラメータを渡す8つの方法の詳細な説明

シングルページアプリケーションを開発する場合、特定のルートを入力し、パラメータに基づいてサーバーから...

SQLはLeetCodeを実装します(180.連続した数字)

[LeetCode] 180. 連続した数字少なくとも 3 回連続して出現するすべての数字を検索す...

Unix/Linux システムにおける nobody ユーザーと nologin の詳細な紹介

Unix/Linux システムの nobody ユーザーとは何ですか? 1. Windows システ...