Dockerコンテナでルート権限を取得する方法

Dockerコンテナでルート権限を取得する方法

まず、コンテナが稼働している必要があります

コンテナのCONTAINER IDは、sudo docker container lsまたはsudo docker psで確認できます。

最後にコマンドを実行します(7509371edd48は上記のコンテナIDです)

sudo docker exec -ti -u root 7509371edd48 bash

補足: 非ルートユーザーにdockerコマンドを実行する権限がない問題を解決する

問題の説明:

「Dockerデーモンに接続しようとしたときにアクセスが拒否されました
unix:///var/run/docker.sockのソケット: 取得
http://%2Fvar%2Frun%2Fdocker.sock/v1.26/images/json: ダイヤル Unix
/var/run/docker.sock: 接続: 権限が拒否されました"

理由(Docker マニュアルより):

非ルートユーザーとしてDockerを管理する

docker デーモンは TCP ポートではなく Unix ソケットにバインドします。
デフォルトでは、そのUnixソケットはユーザーrootによって所有され、他のユーザーは
sudoを使用してのみアクセスしてください。dockerデーモンは常にルートとして実行されます
ユーザー。

dockerコマンドを使用するときにsudoを使用したくない場合は、以下を作成します。
dockerというUnixグループを作成し、そこにユーザーを追加します。dockerデーモンが
起動すると、Unixソケットの所有権が読み取り/書き込み可能になります。
docker グループ。

答えは明らかです。ルート ユーザーを使用するか、docker というユーザー グループを作成し、docker を使用するために必要な非ルート ユーザーをそのグループに追加します。まだ方法がわからない場合は、読み続けてください。

方法1:

管理者権限を取得し、docker コマンドを実行するには、sudo を使用します。この方法では、スクリプトを通じて docker コマンドを実行する場合に多くの制限があります。

方法2:

docker デーモンが起動すると、docker という名前のユーザー グループに、デフォルトで Unix ソケットの読み取りと書き込みの権限が与えられます。したがって、docker ユーザー グループが作成され、現在のユーザーが docker ユーザー グループに追加されている限り、現在のユーザーは Unix ソケットにアクセスする権限を持ち、docker 関連のコマンドを実行できます。

sudo groupadd docker #docker ユーザー グループを追加 sudo gpasswd -a $USER docker #ログインしたユーザーを docker ユーザー グループに追加 newgrp docker #ユーザー グループを更新

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

以下もご興味があるかもしれません:
  • Docker で Let's Encrypt から永久無料 SSL 証明書を取得する方法
  • ルート権限なしでログインするためのDockerソリューション
  • Dockerでmysqlのルートパスワードを変更する方法
  • Docker を使用してコンテナ内のルート パスワードを変更する方法
  • docker cp ファイルをコピーしてコンテナに入る
  • Dockerはコンテナに入るためにルートを使用する
  • Dockerコンテナにホストディレクトリへの書き込み権限がない場合の解決策
  • Dockerに証明書を追加する方法

<<:  珍しいけれど役に立つJSテクニックをいくつか紹介します

>>:  HTML テーブルタグについての簡単な説明

推薦する

Vue はグラフィック検証コードログインを実装します

この記事では、グラフィック認証コードログインを実装するためのVueの具体的なコードを参考までに紹介し...

mysql5.7.33 で誤って ibdata ファイルを削除した後にデータを回復する方法

目次1. シナリオの説明: 2. 事例のデモンストレーション: 2.1. MySQLの障害発生前にデ...

DIV の一般的なタスク (パート 1) — 一般的なタスク (スクロール バーの表示、div の非表示、イベント バブリングの無効化など)

最も一般的に使用されるレイアウト要素として、DIV は Web 開発において重要な役割を果たします。...

HTML の ReadOnly と Enabled の違い

ReadOnly 属性を持つ TextBox は、クライアント上で次のマークアップとして表示されます...

CSS 水平方向の中央揃えと最大幅の制限

CSS レイアウトとスタイルに関する質問: 水平方向の中央揃えと最大幅の制限のバランスをとる方法最近...

美容・スタイリングウェブサイト向けのカラーマッチングテクニックと効果表示

色はあらゆるウェブサイトにとって最も重要な要素の 1 つであり、閲覧者に大きな影響を与えるため、色の...

React+axios は github 検索ユーザー機能を実装します (サンプル コード)

負荷リクエスト成功リクエストに失敗しました cmdをクリックし、ファイルパスでEnterキーを押しま...

MySQL パフォーマンス チューニングについて知っておくべき 15 個の重要な変数 (要約)

序文: MYSQL は最も人気のある WEB バックエンド データベースです。最近、NOSQL がま...

DockerにTensorFlow環境を素早くインストールする方法

Docker に TensorFlow 環境をすばやくインストールし、TensorFlow を使用し...

HTML におけるスクリプトの配置に関する簡単な説明

以前は、スクリプトは HTML 内のどこにでも配置できると思っていましたが、今日、要件に取り組んでい...

docker run後、ステータスは常にExitedになります

追加するdocker run -it -name test -d nginx:latest /bin...

Nginx 502 Bad Gateway エラーの原因と解決策

Nginx 502 Bad Gateway エラーに何度か遭遇しました。ここでメモしておこうと思いま...

ボタンをクリックしてテキストを入力ボックスに変換し、保存をクリックしてテキスト実装コードに変換します。

ボタンをクリックしてテキストを入力ボックスに変換し、保存をクリックしてテキスト実装コードに変換します...

Linux システムのシャットダウンコマンドの違いと使い方の詳細な説明

Linux システムのシャットダウン コマンドは何ですか? Liangxu Tutorial Net...

MySQL 8の新機能ウィンドウ関数の役割

MySQL 8.0 の新機能は次のとおりです。 Unicode 9.0 をすぐに完全にサポートウィン...