Dockerコマンドは一般ユーザーが実行できるように実装されている

Dockerコマンドは一般ユーザーが実行できるように実装されている

dockerをインストールすると、通常はdockerユーザーグループが作成されます。

ステップ2: 現在のユーザーをdockerグループに追加する

sudo gpasswd -a ${USER} docker

ステップ3: Dockerを再起動する

sudo systemctl dockerを再起動します

ステップ4: 読み取りおよび書き込み権限を付与する

sudo chmod a+rw /var/run/docker.sock

補足: 非ルートユーザーにはdockerを使用する権限がありません

docker run を実行するときに権限が要求されない

CentOS に Docker をインストールするための公式ドキュメント

docker-ceをインストールするとdockerユーザーグループが自動的に作成されますが、dockerユーザーグループにユーザーを手動で追加する必要があります。

$ sudo usermod -aG docker $USER

または $ sudo usermod -aG docker {ユーザー名を指定}

しかし、ユーザーをdockerユーザーグループに追加した後も、権限が求められません

たとえば、Ubuntu 14.04 で bash を実行したいとします。

[hsowan@localhost シェルワークスペース]$ docker run -it --rm ubuntu:14.04 bash
docker: unix:///var/run/docker.sock の Docker デーモン ソケットに接続しようとしたときに、アクセスが拒否されました: http://%2Fvar%2Frun%2Fdocker.sock/v1.38/containers/create を投稿: unix /var/run/docker.sock をダイヤル: connect: アクセスが拒否されました。
「docker run --help」を参照してください。

なぜでしょうか? その理由は、ユーザーは docker ユーザー グループに参加しているものの、docker ユーザー グループに切り替えていないため、まだ権限がないためです。

ユーザーが同時に複数のユーザー グループに属している場合、そのユーザーはユーザー グループを切り替えて、他のユーザー グループの権限を持つことができます。

$ 新しいグループドッカー

非ルートユーザーでdocker関連のコマンドを実行できるようになりました

ユーザーにユーザー グループを追加することに加えて、非ルート ユーザーが docker 関連のコマンドを実行できるようにする他の方法はありますか?

さて、/var/run/docker.sockの権限を確認しましょう

$ sudo ll /var/run/docker.sock

次の結果が得られます。

srw-rw----。1 ルート docker 0 9月22日 15:29 /var/run/docker.sock

では、/var/run/docker.sockの権限を直接変更します。

$ sudo chmod 666 /var/run/docker.sock

これで非ルートユーザーとしてdockerを実行できるようになりました

$ docker run -it --rm ubuntu:14.04 bash
root@5c60abab6425:/# cat /etc/os-release 
名前="Ubuntu"
バージョン="14.04.5 LTS、信頼できる Tahr"
ID=Ubuntu
ID_LIKE=デビアン
PRETTY_NAME="Ubuntu 14.04.5 LTS"
バージョンID = "14.04"
HOME_URL="http://www.ubuntu.com/"
サポートURL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
root@5c60abab6425:/# 終了
出口

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

以下もご興味があるかもしれません:
  • Docker execは複数のコマンドを実行します
  • DockerでLinuxシェルコマンドを実行する方法
  • Dockerはコンテナ外のコンテナ内でコマンドを実行します
  • sudo なしで Docker コマンドを実行する方法
  • docker run後に複数のコマンドを実行する
  • dockerデーモンコマンド実行時のエラー問題を解決する

<<:  MySQLオンラインログライブラリの移行例

>>:  Webフロントエンド開発コース Webフロントエンド開発ツールとは

推薦する

React Hooksの使用例

目次簡単なコンポーネントの例より複雑な親子コンポーネントのケースオンセレクトの書き方反応する子供Re...

Vueは、選択した月に応じて日付に対応する曜日を動的に表示します。

私たち謙虚なプログラマーは、今でもこう歌わなければなりません。「あなたも私も、この世に生まれて、一日...

CSS スティッキーフッタークラシックレイアウトの実装

スティッキーフッターレイアウトとは何ですか?一般的な Web ページのレイアウトは、通常、ヘッダー部...

CSSでフォントアイコンを使用する方法をお教えします

まず、フォントアイコンとは何でしょうか?表面的にはアイコンですが、実際はテキストです。テキストの設定...

Winにmysqlをインストールする詳細な手順

この記事では、参考までにWinにmysqlをインストールする詳細な手順を紹介します。具体的な内容は次...

jsはFileReaderを使用してローカルファイルまたはBLOBを読み取ります

目次FileReaderはローカルファイルまたはBLOBを読み取ります1. FileReaderの使...

MySQL 5.7.25 のインストールと設定方法のグラフィックチュートリアル

MySQL インストール ファイルには、msi 形式と zip 形式の 2 種類があります。クリック...

要素 ui の el-table の列にさまざまなスタイルのデータを動的に実装する例

問題の説明Ele.me UI のフレームワークでは、入力データは el-form であり、出力データ...

シンプルなページカウントダウンを実現するJavaScript

この記事では、参考までに、シンプルなページカウントダウンを実装するためのJavaScriptの具体的...

MySQL 5.6.22 のインストールと設定方法のグラフィックチュートリアル

このチュートリアルでは、MySQL5.6.22のインストールと設定方法の具体的なコードを参考までに共...

ウェブページのコアコンテンツ(画像とテキスト)の視覚的表現の紹介

情報の最適化と改良は常にデザインの最初のステップです。 「これは百度アライアンスユーザーエクスペリエ...

新しい Linux ファイル権限設定における umask の詳細な理解

序文起源は質問 1 です: umask が 022 に設定されている場合、作成するファイルのデフォル...

JavaScriptエンジンV8の実行プロセスの詳細な説明

目次1. V8ソース2. V8サービスターゲット3. V8の初期アーキテクチャIV. V8の初期アー...

React ページ ターナーの実装 (フロント エンドとバックエンドを含む)

目次フロントエンド上記のアイデアに従って、ページめくり機能を設計して記述します。バックエンド(Jav...