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

推薦する

草の根ウェブマスターはどのようにして SEO 最適化の壁を乗り越えるのでしょうか?

すべてのウェブマスターは、光明を得て明るい未来を築く前に、長いプロモーションの道を歩まなければなりま...

ウェブサイトが閉鎖され、コンテンツが失われ、ランキングが下がってしまったらどうすればいいでしょうか?

数日前、当社はサーバーを提供していたパートナーと小さな衝突を起こしました。スペースプロバイダーは実際...

10以上のオンライン収益プロジェクトを経験した経験の概要

私は長い間ネットで稼ぐことに関わっていませんでした。始めたのは去年の11月です。きっかけは当時本当に...

オランダのアムステルダムにおける gcore Basic VM の簡単なレビュー

gcoreはどうですか? gcore クラウド サーバーはどうですか? gcoreのクラウドサーバー...

家は遠く離れた道にあります。ウェブマスターは理想の自分であるべきです

「あなたの言ったことは、すべて(空虚な)原理だと私はまだ感じています、ハハ!まったく実用的な応用があ...

【ウクライナ】ITLDC-2.35 ユーロ/kvm/512MB RAM/15GB SSD/100MB 無制限/5 データセンター

ITLDC は最近、無制限のトラフィックを備えた 100M ポート、SSD ハード ドライブ RAI...

分散トランザクションを解決するにはどうすればいいでしょうか?きっぱりと明らかにしましょう!

[[409803]]分散トランザクションの基礎取引トランザクションとは操作単位を指します。この操作...

dedipath - ロサンゼルス VPS レビュー、$3.99/KVM/1g メモリ/20g SSD/5T トラフィック/Windows

dedipath は、こ​​のサイトに 4 度目の登場で、ロサンゼルス データ センターの KVM ...

B2C電子商取引企業が海外のオンラインゴールドラッシュに群がる:国内貿易競争は激しすぎる

南都地図:陳芳国内貿易の競争が激しすぎるため、Vancl、JD.com、Mengbashaなどが対外...

Baidu のプロモーション効果のコンバージョン ファネルを明らかにする: あなたはどの層にいますか?

検索プロモーションは、Baidu プロモーション、Google プロモーション、soso、Sogou...

百度は不注意、不公平、非専門的行為によって自らを破滅させている

2012年は、Baidu Statistics、Baidu Thumb、Baidu Browser、...

記事の単語数がウェブサイトに与える影響を分析する

以前、記事の文字数とSEOランキングの関係について記事を書きました。この記事では、記事の文字数がウェ...

Oracle リレーショナル分散インメモリ データベース

インメモリコンピューティング今のところ、メモリは私たちが使用できる最も高速なストレージ デバイスです...