Linux で非ルートユーザーとして Docker を実行するにはどうすればいいですか?

Linux で非ルートユーザーとして Docker を実行するにはどうすればいいですか?

[51CTO.com 速訳] UbuntuにDockerをインストールするのは簡単!初心者でも15分以内にインストールを完了できます。 Docker をインストールした後、通常のユーザーとしてほとんどの Docker 操作を実行できないことに気付きました。毎回、Docker を「root」ユーザーとして、または「sudo」権限で実行する必要がありました。非ルート ユーザーとして、または sudo 権限なしで Docker を実行しようとすると、次のエラーが発生します。

  1. 試みているときにアクセスが拒否されました 接続する  unix:///var/run/docker.sockDocker デーモン ソケット: http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version を取得: unix /var/run/docker.sock にダイヤル:接続: 権限が拒否されました

たとえば、次のコマンドを使用して、通常のユーザーとして Docker のバージョンを確認します。

  1. $ docker バージョン

次のエラー メッセージも表示されます:

  1. クライアント: Docker Engine - コミュニティ
  2. バージョン: 19.03.8
  3. APIバージョン: 1.40
  4. Goバージョン: go1.12.17
  5. Gitコミット: afacb8b7f0
  6. 作成日: 2020年3月11日水曜日 01:25:46
  7. OS/アーキテクチャ: linux/amd64
  8. 実験的: 
  9. 試みているときにアクセスが拒否されました 接続する  unix:///var/run/docker.sockDocker デーモン ソケット: http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version を取得: unix /var/run/docker.sock にダイヤル:接続: 権限が拒否されました

しかし、同じコマンドを sudo 権限で実行すると次のようになります。

  1. $ sudo docker バージョン

以下に示すように、現在インストールされている Docker バージョンの詳細が表示されます。

  1. クライアント: Docker Engine - コミュニティ
  2. バージョン: 19.03.8
  3. APIバージョン: 1.40
  4. Goバージョン: go1.12.17
  5. Gitコミット: afacb8b7f0
  6. 作成日: 2020年3月11日水曜日 01:25:46
  7. OS/アーキテクチャ: linux/amd64
  8. 実験的: 
  9. サーバー: Docker Engine - コミュニティ
  10. エンジン:
  11. バージョン: 19.03.8
  12. API バージョン: 1.40 (最小バージョン 1.12)
  13. Goバージョン: go1.12.17
  14. Gitコミット: afacb8b7f0
  15. 作成日: 2020年3月11日水曜日 01:24:19
  16. OS/アーキテクチャ: linux/amd64
  17. 実験的: 
  18. コンテナ:
  19. バージョン: 1.2.13
  20. GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429
  21. ランク:
  22. バージョン: 1.0.0-rc10
  23. GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
  24. docker-init:
  25. バージョン: 0.18.0
  26. Gitコミット: fec3683

Docker のドキュメント ページを検索したところ、Docker デーモンはデフォルトで TCP ポートではなく Unix ソケットにバインドしていることに気付きました。この Unix ソケットは root ユーザーによって所有されているため、Docker デーモンは root ユーザーとしてのみ実行できます。そのため、一般ユーザーはほとんどの Docker コマンドを実行できません。

Linux で非 root ユーザーとして Docker を実行する場合は、次の手順を実行する必要があります。 Ubuntu 18.04 サーバーでテストしたところ、問題なく動作しました。他の Linux ディストリビューションでも動作するはずです。

Linux で非ルートユーザーとして Docker を実行する

Docker 権限拒否エラーを解決し、Docker を非ルート ユーザーとして使用するには、次のコマンドを使用して「docker」というグループを作成します。

  1. $ sudo グループ追加 docker

次に、ユーザーを docker グループに追加します。

  1. $ sudo usermod –aG docker $ USER  

ユーザーを docker グループに追加した後、変更を有効にするためにログアウトして再度ログインします。

または、次のコマンドを実行してグループに変更を加えます。

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

今後は、通常のユーザー (非 root ユーザー) は sudo 権限なしで Docker を使用できるようになります。

通常のユーザーとして次のコマンドを実行してみましょう。

  1. $ docker バージョン 
  2. $ docker run hello-world

サンプル出力:

見る?これで、両方の Docker コマンドを sudo 権限なしで実行できるようになりました。

ユーザーを Docker グループに追加する前に、「sudo」権限でいくつかの Docker コマンドを実行した場合、次のようなエラーが表示されることがあります。

  1. 警告: 設定ファイルの読み込みエラー: /home/ user /.docker/config.json -
  2. stat /home/ user /.docker/config.json: 権限が拒否されました

上記のエラー メッセージは、「sudo」コマンドにより ~/.docker/ ディレクトリが誤った権限で作成されたことを示しています。これを修正するには、次のコマンドを使用してディレクトリの所有権と権限を変更します。

  1. $ sudo chown "$USER" : "$USER" /home/ "$USER" /.docker -R
  2. $ sudo chmod g+rwx "$HOME/.docker" -R

有効にするには、ログアウトして再度ログインしてください。

それでも問題が解決しない場合は、~/.docker/ ディレクトリを削除する必要がある可能性があります。ディレクトリは自動的に再作成されますが、カスタマイズがあった場合はその内容は失われます。

この記事がお役に立てば幸いです。

元のタイトル: Linux で非ルートユーザーとして Docker を実行する方法、著者: SK

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください。

<<:  5G時代のもう一つの「爆発的な」アプリケーション、クラウドゲームの未来とは?

>>:  TRTC は、高同時実行性と高可用性を備えたリアルタイムのオーディオおよびビデオ インタラクティブ シナリオの実装に役立ちます (開発上の利点を含む)

推薦する

病院のウェブサイト構築と最適化に関する経験を共有しましょう

最適化の仕事に携わってきたこの数年間、私はあまりにも多くの業界と接してきました。その中でも、医療業界...

Java JVM の秘密を解明

この記事では、JVM メモリ モデル、クラス ローダー、GC 回復アルゴリズム、GC コレクターなど...

大規模分散サーバーアーキテクチャの原理の分析

技術者として、私たちはほぼすべてのプロジェクトが、単一のサーバーからクラスター サーバーまで、単純な...

オリジナルコンテンツにこだわったウェブサイトは、半年後についに降格した。

SEO とは粘り強さとオリジナル コンテンツの方向性を貫くことだと、今になってようやく理解しました。...

南アフリカcn2giaネットワークの独立サーバー、強制3ネットワークバックホールcn2 giaの簡単な評価

Justgは以前から南アフリカのデータセンターに南アフリカ独立サーバーを設置しており、南アフリカのク...

三国志を読んで探る;目立つように死ぬ;なぜ鍾馗は目立たずに生き残るのか

長江は東に流れ、波はすべての英雄を洗い流します。後漢末期、漢王朝は弱体化し、軍閥は権力を争いました。...

uuuvps: US cn2 gia vps、25% 割引コード、Windows をサポート、VPS 評価データが添付

最近、米国の CN2 GIA VPS が不足しています。ここでは、米国サンノゼにある uuuvps ...

高齢者のWeChatの運命:ユーザーエクスペリエンスとフォローアップに関する簡単な議論

いつから始まったのかは分かりませんが、街中で年配の方がポケットから携帯電話を器用に取り出し、タッチス...

SEO 診断: ウェブサイト構築における魔法の太極拳スキル

SEO診断(http://seo.admin5.com)は、SEO分野で最もホットな話題の1つになっ...

よりシンプルなユーザーインターフェースを作成するための 5 つのミニマリストのヒント

[編集者注] この記事の著者であるジェイク・ロシュローは、ソーシャル メディア愛好家であり、インター...

Baidu とウェブマスター: ウェブサイトの登録と削除、SEO について

Baidu ウェブサイトの「Baidu とウェブマスター」セクションの内容が更新され、調べる価値のあ...

123systems - 年払い 30 ドル / XEN / メモリ 1g / ハードディスク 10g / トラフィック 3T

123systems からプロモーション メールが届きました。1 GB のメモリを搭載した XEN ...

YY社のオルタナティブビジネス哲学:アマチュアパフォーマーに春が来る

はじめに:今日、外国メディアがYY社のユニークなビジネスモデルを分析する記事を掲載しました。記事によ...

検索エンジンがサイトに素早くアクセスできるようにする方法

新しいサイトを持っている友人はたくさんいますが、その中には含まれているものはほとんどありません。サイ...