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

推薦する

「言葉にできない」に適した格安VPS集 [/05]

さまざまな理由から、Facebook、Twitter、-、BBCなどの娯楽のためであろうと、G-0-...

DigitalOceanがホスティングプロバイダー第7位に躍進

DigitalOceanは現在、世界で7番目に大きなホスティング会社です。6月も終わりに近づき、Ne...

sharktech - 50 ドル割引/デュアル チャネル L5520/24G メモリ/2x2T ハード ドライブ/5IP/1G 帯域幅

Sharktech Shark Data Center では、新しい安価なサーバーを販売しています。...

bergenhosting: $10/年、KVM 仮想 VPS/512 メモリ/ノボシビルスク/ロサンゼルス

Bergenhostingは新興企業で、VPSと専用サーバーを主な事業としています。Bergenho...

効果的なハイブリッドクラウド移行戦略の5つの鍵

ハイブリッド クラウド移行戦略を通じて、企業は社内のワークロードを外部環境に拡張できます。独自の I...

4か月間降格されたサイトの記事を通常の状態に戻す方法

今日は木曜日、寝る前に、多くのウェブマスターと同じようにウェブサイトの状態を確認しました! 私のウェ...

マーベルとアマゾン ウェブ サービスが協力し、クラウドファーストのチップ設計を実現

データ インフラストラクチャ半導体ソリューションのリーダーである Marvell Technolog...

最大 VPS - 8.5 ドル/年/KVM/64 MB メモリ/5 GB ハードディスク/56 GB トラフィック/G ポート

Maximumvps は新年を前に特別プロモーションを発表しました。64M メモリの KVM アドレ...

raksmart クラスタ サーバー: $142、8 つの C セグメント\最適化された回線、香港クラスタ、日本クラスタ、シンガポール クラスタ、米国クラスタ

Raksmart データ センターは、香港のクラスター サーバー、日本のクラスター サーバー、シンガ...

SEO の悪党たちの秘密を暴く

SEO 凶悪犯とは、対戦相手の Web サイトを攻撃して自分のランキングを向上させる SEO 担当者...

推奨: AlphaRacks - 5.99 USD/4 コア/1 GB RAM/90 GB ハード ドライブ/3.5 TB トラフィック

Alpharacks は、DDOS 保護、OpenVZ ベースの VPS、サーバー レンタルを提供す...

ウェブサイトの信頼性検証がますます向上すると、個々のウェブマスターにどのような影響が及ぶでしょうか?

セキュリティはインターネットの永遠のテーマです。毎日、何億人ものネットユーザーがオンラインで必要な情...