Alasan:Pesan kesalahan berarti bahwa pengguna saat ini tidak dapat mengakses mesin buruh pelabuhan, karena pengguna tidak memiliki cukup izin untuk mengakses soket UNIX untuk berkomunikasi dengan mesin tersebut.
Perbaikan Cepat:
-
Jalankan perintah sebagai root menggunakan sudo.
sudo docker ps
-
Ubah izin /var/run/docker.sock untuk pengguna saat ini.
sudo chown $USER /var/run/docker.sock
Perhatian :Menjalankan sudo chmod 777 /var/run/docker.sock akan menyelesaikan masalah Anda tetapi itu akan membuka soket buruh pelabuhan untuk semua orang yang merupakan kerentanan keamanan seperti yang ditunjukkan oleh @AaylaSecura. Oleh karena itu tidak boleh digunakan, kecuali untuk tujuan pengujian pada sistem lokal.
Solusi Permanen:
Tambahkan pengguna saat ini ke grup buruh pelabuhan.
sudo usermod -a -G docker $USER
Catatan:Anda harus keluar dan masuk lagi agar perubahan diterapkan.
Lihat blog ini untuk mengetahui lebih lanjut tentang mengelola Docker sebagai pengguna non-root.
Bagi yang baru mengenal shell, perintah:
$ sudo usermod -aG docker $USER
harus memiliki $USER
didefinisikan di shell Anda. Ini sering ada secara default, tetapi Anda mungkin perlu menyetel nilai ke id login Anda di beberapa shell.
Mengubah grup pengguna tidak mengubah login, terminal, dan shell yang ada yang telah dibuka pengguna. Untuk menghindari melakukan login lagi, Anda cukup menjalankan:
$ newgrp docker
untuk mendapatkan akses ke grup itu di shell Anda saat ini.
Setelah Anda melakukannya, pengguna secara efektif memiliki akses root di server, jadi lakukan ini hanya untuk pengguna yang dipercaya dengan akses sudo tak terbatas.