Docker を使用している場合、コマンドが「権限が拒否されました」エラーを返す場合があります。このエラーは、コマンドに対する十分な権限なしで Docker を実行しようとすると発生します。
Docker では、デフォルトで関連コマンドを実行するために sudo または root 権限が必要です。必要な権限なしでコマンドを実行しようとすると、悪名高い「権限が拒否されました」エラーが発生します。
このチュートリアルでは、Docker コマンドを実行しようとしたときの「権限が拒否されました」エラーを修正するために使用できるさまざまな方法とテクニックを説明します。
ルートレス環境で Docker を実行するプロセスはカバーされていないことに注意してください。次のリソースで、ルートレス Docker に関するチュートリアルを確認できます。
要件:
ご想像のとおり、この投稿を進めるには次のものが必要です。
- Docker バージョン 20.0 以降
- ホストシステム上の Sudo または root 権限
「許可が拒否されました」エラーとは何ですか?
Docker で「アクセス許可が拒否されました」エラーが発生した場合、アクセス許可が不十分なため、ホスト システムが Docker デーモンとの通信を確立できないことを意味します。以下に例を示します。
$ ドッカーラン -それ ビジーボックス しー
特定のエラーが発生した場合は、次の方法のいくつかを使用して修正方法を学習できます。
方法 1: Docker を root として実行する
Docker の「許可が拒否されました」エラーを解決する最初の最も明白な方法は、「sudo」コマンドを使用することです。 sudo 権限がある場合は、sudo を使用して関連するコマンドを実行することで問題を修正できます。
たとえば、上記のエラーを修正するには、次のようにコマンドの前に sudo を追加します。
$ 須藤 ドッカーラン -それ ビジーボックス しー
ご覧のとおり、Docker は必要なイメージを正常にプルし、コンテナーを実行します。
方法 2: Docker デーモンを再起動する
エンジンに問題がある場合、Docker で「アクセス許可が拒否されました」エラーが発生することがあります。問題を手動で追跡する代わりに、Docker デーモンのクイック再起動を試みてリロードすることができます。
まず、次のように Docker デーモンのステータスを確認します。
$ docker systemctl status ドッカー
Docker が実行されていることを確認したら、次のコマンドを使用してサービスを再起動します。
これにより、Docker デーモンが起動し、コマンドの実行を妨げる可能性のある潜在的な問題が修正されます。
方法 3: 非 root ユーザーを有効にする
Docker の「権限が拒否されました」エラーを解決するために使用できるもう 1 つの方法は、root 以外のユーザーに Docker コマンドの実行を許可することです。
この方法を有効にするには、ホスト システムにログインし、Docker の新しいグループを作成します。
$ 須藤 グループ追加 -f 港湾労働者
次に、次のように任意のユーザーを Docker グループに追加します。
前のコマンドにより、linuxhint ユーザーが Docker グループに追加されるはずです。
最後に、次のコマンドを使用して、グループの変更を現在のセッションに適用します。
$ newgrp ドッカー
完了すると、Docker グループ内のユーザーに対して sudo を使用せずに、任意の Docker コマンドを実行できるようになります。
方法 4: Docker 権限を再構成する
次に使用できる方法は、Docker ソケットのアクセス許可をリセットすることです。まず、次のコマンドを実行して、Docker Unix ソケットの所有権を変更します。
$ 須藤 チャウン ルート:ドッカー / だった / 走る / docker.sock
次に、次のコマンドを使用して、ホーム ディレクトリ内の非表示の Docker ディレクトリの所有権を取得します。
最後に、次のように、ディレクトリへの読み取りおよび書き込み権限を持つグループを割り当てます。
提供されたメソッドでは、必須の Docker ファイルとディレクトリに十分なアクセス許可を設定する必要があります。
結論
このチュートリアルでは、Docker コマンドを呼び出すときに Docker の「アクセス許可が拒否されました」エラーを解決する 4 つの主な方法を使用する方法を学びました。