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 テーブルタグについての簡単な説明

推薦する

LinuxベースのSelenium環境を構成し、操作を実装する

1. Linux で Selenium を使用する1. Chromeをインストールする次のコマンドを...

JavaScript は 3 つの一般的な Web 効果 (オフセット、クライアント、スクロール シリーズ) を実装します。

目次1. 要素オフセットシリーズ2. 要素表示領域クライアントシリーズ3. 要素スクロールシリーズ1...

HTTP および HTTP コラボレーション Web サーバー アクセス フロー図

Web サーバーは、独立したドメイン名を持つ複数の Web サイトを構築できるほか、通信経路上のトラ...

HTML フォーム_PowerNode Java アカデミー

1. フォーム1. フォームの役割HTML フォームは、さまざまな種類のユーザー入力を受け取り、ユー...

WeChatアプレットでのwxsファイルの素晴らしい使い方をいくつか紹介します

目次序文応用フィルタードラッグファイル間での参照の受け渡しwxsはjsロジック層にパラメータを渡しま...

JavaScriptのアロー関数の特徴と通常の関数との違い

目次1. 矢印関数の使用1. 通常関数から矢印関数へ2. 中括弧を省略してリターンする3. 括弧を省...

crontab スケジュールされたタスクが実行されない理由の分析と解決

序文Linux のスケジュールされたタスクを実装する方法としては、cron、anacron、at な...

CSS と Bootstrap アイコンを使用して、上下にジャンプするインジケーター矢印のアニメーション効果を作成します。

ページが非常に長い場合は、下にさらにコンテンツがあることをユーザーに知らせるために矢印が必要になるこ...

div の高さをブラウザの高さに合わせて調整する方法

この古くからある疑問は、数え切れないほどのフロントエンド開発者やバックエンドプログラマーを悩ませてき...

JDBC を使用して Mysql データベースに接続する際に発生する可能性のある問題の概要

まず、いくつかの概念を明確にします。 JDBC: Javaデータベース接続、Oricalによって規定...

友達やグループを見つけるためのJavaScriptのLayim

現在、layuiの関係者はlayim友達検索ページの構造とスタイルを提供していません。私は個人的に非...

Vue ページをリフレッシュするために provide と injection を適用する

目次方法1: 関数を直接呼び出す方法2: provide / inject (静的更新) を使用する...

Nginx を使用して https ルートドメイン名への 301 リダイレクトを実装するためのサンプル コード

SEO とセキュリティを考慮して、301 リダイレクトが必要です。以下の一般的な処理には Nginx...

Tomcatのデフォルトパスの設定によって発生するプロジェクトURLの競合を解決する方法の詳細な説明

序文Tomcat は優れた Java コンテナですが、避けられない小さな落とし穴もいくつかあります。...

MySQLでのカスタムパラメータの使用に関する詳細な説明

MySQL 変数には、システム変数とシステム変数が含まれます。今回の学習課題はユーザー定義変数です。...