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 は左右のスライド効果のサンプルコードを実装します

序文個人の実際の開発で使用した効果問題を、今後の開発やレビューに役立てるためにまとめています。他の人...

Docker swarm を使用して Nebula Graph クラスターを迅速にデプロイする方法のチュートリアル

1. はじめにこの記事では、Docker Swarm を使用して Nebula Graph クラスタ...

シンプルなカルーセル効果を実現するネイティブ js

この記事では、シンプルなカルーセル効果を実現するためのjsの具体的なコードを参考までに紹介します。具...

Dockerイメージストレージoverlayfsの使用

1. 概要Docker のイメージはレイヤーで設計されています。各レイヤーは「レイヤー」と呼ばれます...

HTMLテーブルの詳細な説明

機能: データ表示、テーブルアプリケーションシナリオ。 <table> テーブル<...

LinkedIn がウェブサイト閲覧を簡素化するためにリニューアル

ビジネス ソーシャル ネットワーキング サイト LinkedIn は最近、ナビゲーション バーとユー...

HTML テーブルの空白セル補完を実装する方法

私が初めて Web 開発を独学で学んだ頃は、いわゆる DIV/CSS レイアウトはなく、テーブル レ...

docker compose helloworld を使い始めるための詳細なプロセス

前提条件Compose は、Docker コンテナをオーケストレーションするためのツールです。Doc...

HTML テーブルタグチュートリアル (25): 垂直配置属性 VALIGN

垂直方向では、行の配置を上、中央、下に設定できます。基本的な構文<TR VALIGN=&quo...

TypeScript とは何ですか?

目次1. JavaScriptの問題2. TypeScriptの利点3. TypeScriptの欠点...

Linuxカーネルで中国語の文字を出力する方法

次のように、Windows/MacOS からログインした Linux の SSH ターミナルで簡単に...

角度に基づくツリー型セカンダリテーブルを実現する

まず効果を見てみましょう: コード: 1.html <div class="user...

別の種類の「キャンセル」ボタン

「キャンセル」ボタンは必要な操作プロセスの一部ではなく、デザイン上の主要な要素として表示されません...

win10でのmysql5.7.21解凍バージョンのインストールチュートリアル

次のように、Win10でMysqlの解凍バージョンをインストールします。環境: win10 64ビッ...

CSS カウンターを使用して数字の順序付きリストを美しく表示する方法

Web デザインでは、Web サイトに表示されるデータの構造とコンテンツをユーザーが明確に理解できる...