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

推薦する

ウェブサイトがハッキングされた場合の対処法: ランキングを回復する方法

ウェブサイト攻撃やトロイの木馬は、ウェブサイトのランキングが消える原因の 1 つであり、最も一般的な...

中国式 SEO 公式: SEO = なんてこった

SEO に携わるほとんどの人は、古典的な SEO 公式 (SEO=∫Clock=∫C1+L2+K3+...

「ザ・インタビュー」がBTでダウンロードラッシュを引き起こす

『ザ・インタビュー』が米国で公開されてからわずか1時間後、この映画のBTシードがオンラインで公開され...

コンテナと Kubernetes を扱うこれら 3 社の「秘密」とは何でしょうか?

今日、あらゆる業界でデジタル変革のペースが加速し、データとワークロードがクラウドに移行しています。こ...

Dianshi Interactive の Liu Huanbin: ウェブサイトを効率的にインデックス化する方法

5月25日、厦門でグローバル検索エンジン戦略会議が開催されました。Grantastic Design...

Baiduキーワードランキング急落の分析と解決策

編集者のウェブサイト「スマートホームネットワーク」を例に挙げてみましょう最近、BaiduやGoogl...

hostdare-25% 割引コード/KVM/C3 コンピュータ ルーム/$3.74/756M メモリ/17G ハード ディスク/1T トラフィック/Windows

Hostdare は本日、最小 80M ポートと 6 月 30 日まで有効な永久 25% 割引コード...

「今日頭条」が検索市場に参入、トラフィック巨人同士の戦い!

要点: ByteDanceの製品は情報や短編動画で成功を収めているが、業界全体で見ると、ソーシャル、...

UFIDA Smart Star:デジタル変革の波の中で企業の「中枢脳」をどう構築するか?

中国の企業サービス市場は、初期の情報化段階から現在のデジタル化に至るまで、1980年代に発展し始めま...

4月上旬の国内ウェブサイトトラフィック:360 Security CenterがTaobaoを上回り3位に

IDC Review Network (idcps.com) は 4 月 29 日に次のように報告し...

電子商取引ウェブサイトは、顧客を維持するためにどのように価格を上げることができますか?

生産コスト、人件費、運営コストはすべて増加しています。このような状況では、eコマース企業にはコストを...

QRコード標準化プラットフォームは今年末に開始予定。敷居が低く、収益化も可能。

ショッピングや支払いでもウイルスが拡散する可能性がある。セキュリティの問題は真剣に受け止める必要があ...

moecloud: 月額25元、ロサンゼルスCN2 GIA VPS、KVM仮想化、「netflix」を視聴可能

中国の販売業者であるmoecloudは、ロサンゼルスデータセンターのCN2 GIA回線で主にVPSを...

SEO 担当者は恥ずかしい職業ですか?

SEOer とは、SEO 業務を行う人のことを指します。以前は、多くの SEO 実践者がこの肩書きを...