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フロントエンド開発ツールとは

推薦する

Docker はすべてのコンテナをバッチ起動して閉じます

Dockerの場合すべてのコンテナコマンドを開始する docker を起動します $(docker ...

絵文字と問題解決のためのMySQL/Javaサーバーサポートの詳細な説明

この記事では、絵文字用の MySQL Java サーバーのサポートと問題解決方法について説明します。...

Web 開発の面接と筆記試験に必須の知識(必読)

HTML のインライン要素とブロックレベル要素の違い:標準的なドキュメント フローでは、ブロック ...

VMware Workstation での VMware vSphere のセットアップ (グラフィック チュートリアル)

VMware vSphere は、業界をリードする最も信頼性の高い仮想化プラットフォームです。 v...

react-navigation6.xルーティングライブラリの基本的な使い方の詳しい説明

目次react-nativeプロジェクトの初期化react-nativeプロジェクトをインストールす...

Docker クリーンアップ環境操作

丁寧に掃除を始めましょう!未使用ボリュームの一覧docker ボリューム ls -qf dangli...

CSS スティッキーフッターのいくつかの実装

「スティッキーフッター」とはいわゆる「スティッキー フッター」は、新しいフロントエンドの概念や技術で...

Vueルーティングはページステータスを復元する操作メソッドを返します

ルートパラメータ、ルートナビゲーションガード: ページが戻ったときに検索結果を保持する需要シナリオ:...

Docker Tomcat のアクセス インターフェイスが表示されないのはなぜですか?

質問:オリジン サーバーはターゲット リソースの表現を見つけることができないか、既存の表現を公開した...

JS と Nodejs におけるイベント駆動型開発についての簡単な説明

目次イベント駆動型とパブリッシュ・サブスクライブ型ブラウザの JavaScript ではイベント駆動...

HTML ページにミュージック ビデオを追加する例

1. ビデオタグFirefoxでは自動再生をサポートしますが、GoogleとIEではサポートしません...

IE における条件付きコメントの利点と欠点

IE の条件付きコメントは、通常の (X)HTML コメントに対する Microsoft 独自の (...

Vue データの応答性の概要

データの応答性について話す前に、Vue はデータに対して具体的に何を行うのかという非常に重要な問題を...

MySQLの文字タイプは大文字と小文字を区別します

デフォルトでは、MySQLの文字タイプは大文字と小文字を区別しません。つまり、name='A...

Vueフィルターの詳細な説明

<本文> <div id="ルート"> <h2&...