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

推薦する

IE 環境での css-vars-ponyfill の使用に関する詳細な説明 (nextjs ビルド)

css-vars-ポニーフィルCSS 変数を使用して Web ページのスキニングを実現すると、互換...

mysql 5.6.21 のインストールと設定の詳細な手順

1. 概要MySQL バージョン: 5.6.21ダウンロードアドレス: https://dev.my...

CentOS8 jdk8 / java8 のインストールチュートリアル(推奨)

序文最初はCentOS8でwgetを使ってダウンロードし、解凍して環境変数を設定するつもりだったので...

要素テーブルの行と列のドラッグを実装する例

要素 ui テーブルにはドラッグ アンド ドロップによる並べ替え機能が組み込まれておらず、サードパー...

Vue ダイナミック バインディング アイコンの完全な手順

0 アイコンと画像の違いアイコンは文字であり、画像はバイナリ ストリームです。つまり、画像はアイコン...

Alibaba Cloud ESC サーバー シングルノード MySQL の Docker デプロイメント

1. msyqlの高速バージョンをダウンロードする docker pull hub.c.163.co...

node.js が大規模プロジェクトに適さない理由

目次序文1. アプリケーションコンポーネント2. アプリケーションの種類3. アプリケーションサービ...

W3C チュートリアル (4): W3C XHTML アクティビティ

HTML は、World Wide Web 上で公開するために使用されるハイブリッド言語です。 XH...

GDBデバッグMySQL実戦ソースコードコンパイルとインストール

ソースコードをダウンロード git クローン https://github.com/mysql/my...

Nginx コンパイル済み nginx - 新しいモジュールを追加

1. 既存のモジュールを表示する nginx の sbin ディレクトリに nginx の sbin...

JS変数ストレージのディープコピーとシャローコピーの詳しい説明

目次可変タイプとストレージスペーススタックメモリとヒープメモリ基本的なデータ型参照タイプグラフィック...

MacでMysqlのルートパスワードを忘れた場合の解決方法

長い間コンピューターで mysql を使用していなかったので、パスワードを忘れてしまいました。でも、...

MySQL データベースの最適化: インデックスの実装原則と使用状況の分析

この記事では、例を使用して、MySQL データベースの最適化のためのインデックス実装の原則と使用方法...

VMware Workstation Pro でサーバー仮想マシンを構築する (グラフィック チュートリアル)

私が使用している VMware Workstation Pro のバージョンは次のとおりです。 1....