理由:このエラー メッセージは、現在のユーザーが Docker エンジンにアクセスできないことを意味します。これは、ユーザーがエンジンと通信するための UNIX ソケットにアクセスするための十分な権限を持っていないためです。
簡単な修正:
<オール>sudo を使用して root としてコマンドを実行します。
sudo docker ps
現在のユーザーの /var/run/docker.sock の権限を変更します。
sudo chown $USER /var/run/docker.sock
注意 :sudo chmod 777 /var/run/docker.sock を実行しています あなたの問題は解決しますが、@AaylaSecura によって指摘されているように、セキュリティの脆弱性である docker ソケットがすべての人に開かれます。したがって、ローカル システムでのテスト目的以外では使用しないでください。
恒久的な解決策:
現在のユーザーを docker グループに追加します。
sudo usermod -a -G docker $USER
注:変更を有効にするには、ログアウトしてから再度ログインする必要があります。
root 以外のユーザーとして Docker を管理する方法の詳細については、このブログを参照してください。
シェルを初めて使用する場合は、コマンド:
$ sudo usermod -aG docker $USER
$USER
が必要です シェルで定義されています。多くの場合、これはデフォルトで存在しますが、一部のシェルではログイン ID に値を設定する必要がある場合があります。
ユーザーのグループを変更しても、ユーザーが開いている既存のログイン、端末、およびシェルは変更されません。ログインの再実行を避けるには、以下を実行するだけです:
$ newgrp docker
現在のシェルでそのグループにアクセスできます。
これを行うと、ユーザーは実質的にサーバー上で root アクセス権を持つようになるため、無制限の sudo アクセスで信頼されているユーザーに対してのみこれを行ってください。