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

推薦する

Robots.txtの詳細な紹介

robots.txt の基本的な紹介Robots.txt はプレーンテキスト ファイルであり、Web...

MySQL 派生テーブル(Derived Table)の簡単な使用例分析

この記事では、例を使用して、MySQL 派生テーブルの簡単な使用方法を説明します。ご参考までに、詳細...

MySQL で主キーと ROWID を使用する際の落とし穴の概要

序文MySQL の rowid の概念については聞いたことがあるかもしれませんが、テストや実践が難し...

Vue3+TypeScriptは再帰メニューコンポーネントの完全な例を実装します

目次序文必要成し遂げる最初のレンダリングメニュー項目をクリックしますスタイルの区別デフォルトのハイラ...

Ubuntuはポート22を開きます

シナリオssh 経由で Ubuntu サーバーに接続するには、xshell ツールを使用する必要があ...

Webスキル: 複数のIEバージョンの共存ソリューション IETester

私のおすすめ複数のIEバージョンの共存のためのソリューション以前に IE6、IE7、IE8 の共存に...

CSS グリッドレイアウトを使用してレスポンシブな縦棒グラフを作成する方法

私はしばらくの間チャートをいじっていましたが、好奇心から、CSS を使用してチャートを作成するより良...

mysql はフィールドコンテンツの一部を置き換え、mysql は関数 replace() を置き換えます。

[mysql] replace の使用方法 (フィールドの内容の一部を置き換える) [mysql]...

ブラウザでのjsのイベントループイベントキューの詳細な説明

目次序文スタックと2つのキューを理解する実行プロセス簡単な例より難しい例要約する序文以下の内容はブラ...

Reactでpropsを使用する方法と制限する方法

コンポーネントの props (props はオブジェクトです)機能: コンポーネントに渡されたデー...

Vueタブとキャッシュページを切り替えるいくつかの方法

目次1. 切り替え方法2. タブを動的に生成する3. キャッシュコンポーネント3.1 キープアライブ...

Chromeブラウザの自動パスワード保存プロンプト機能を無効にする方法

注: Web 開発では、フォームに autocomplete="off" を追加...

MySQL の主キーがクエリを高速化するために数値を使用するか UUID を使用するかについての簡単な分析

実際の開発では、MySQL の主キーは重複できず、主キーが自動的にインクリメントされることがあります...

LinuxでPythonの組み込みバージョンを削除する手順の詳細な説明

大きな落とし穴、Linuxシステムに付属するPythonのバージョンを簡単に削除しないでください1....

MySQL マスタースレーブ同期の原理と応用

目次1. マスタースレーブ同期原理マスタースレーブ同期アーキテクチャ図(非同期同期)マスタースレーブ...