ホームページ  >  記事  >  運用・保守  >  docker を使用するには root 権限が必要ですか?

docker を使用するには root 権限が必要ですか?

WBOY
WBOYオリジナル
2022-06-27 10:33:458204ブラウズ

docker を使用するには root 権限が必要です。root 権限のない一般ユーザーは docker を操作できません。root 権限がない場合は、sudo を使用して管理者権限を取得したり、docker コマンドを実行したり、現在のユーザーを docker ユーザー グループに追加すると、現在のユーザーは「Unix ソケット」にアクセスする権限を持ち、docker 関連のコマンドを実行できます。

docker を使用するには root 権限が必要ですか?

このチュートリアルの動作環境: linux7.3 システム、docker バージョン 19.03、Dell G3 コンピューター。

docker を使用するには root 権限が必要ですか?

docker を実行するには root 権限が必要です。

root 以外のユーザーに docker コマンドを実行する権限がないという問題を解決するには、次のような方法があります:

方法 1:

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

方法 2:

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

sudo groupadd docker     #添加docker用户组
sudo gpasswd -a $USER docker     #将登陆用户加入到docker用户组中
newgrp docker     #更新用户组

拡張知識:

docker デーモン プロセスには root 権限があります。つまり、 docker デーモン プロセスを実行しているユーザーは依然として root です。次の修正を行う必要があります:

docker を使用するには root 権限が必要ですか?

つまり、非 root ユーザーで docker をインストールし、docker デーモン プロセスを開始する必要があります。このインストールおよび動作モードは次のとおりです。 「RootLess」モデルと呼ばれます。インストールできますが、前提条件があります。「RootLess」モードは、Docker Engine v19.03 で実験的な機能として導入され、Docker Engine v20.10 から正式に利用可能になります。

前提条件

newuidmap ツールと newgidmap ツールのshadow-utilsをインストールする必要があります。つまり、上記の /etc/subuid と /etc/subuid を設定するには、これら 2 つのツールのサポートが必要です。インストール前に、yum list installedshadow-utils を使用して、インストールされているか、オペレーティング システムに付属しているかを確認します。存在する場合はインストールしないでください。ただし、3 番目の手順の設定は必要です。

ステップ 1:shadow-utils46-newxidmap

curl -o /etc/yum.repos.d/vbatts-shadow-utils-newxidmap-epel-7.repo https://copr.fedorainfracloud.org/coprs/vbatts/shadow-utils-newxidmap/repo/epel-7/vbatts-shadow-utils-newxidmap-epel-7.repo

ステップ 2: yum install -yshadow-utils46-newxidmap

ステップ 3 : /etc/sysctl.conf ファイル内のシステム パラメータ user.max_user_namespaces = 28633 を変更し、変更が完了したら、sysctl --system コマンドを実行してパラメータを有効にします。

echo user.max_user_namespaces=28633 >> /etc/sysctl.d/userns.conf;
sudo sysctl -p /etc/sysctl.d/userns.conf;
echo user.max_user_namespaces=28633 >> /etc/sysctl.d/userns.conf;
sudo sysctl -p /etc/sysctl.d/userns.conf;

このパラメータのデフォルト値は 0 です。これは、オペレーティング システム ユーザーが subuid スペースを持つことを許可されていないことを意味します。上記の操作が完了したら、sysctl --all --pattern user_namespaces コマンドを使用して変更結果を確認します。

推奨される学習: 「docker ビデオ チュートリアル

以上がdocker を使用するには root 権限が必要ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。