Baru-baru ini, saya menginstal Docker di Ubuntu. Itu sangat mudah. Tetapi ketika saya mencoba menjalankan perintah buruh pelabuhan, itu melemparkan kesalahan ini kepada saya:
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/json: dial unix /var/run/docker.sock: connect: permission denied
Bukannya saya mencoba menjalankan sesuatu yang istimewa. Itu juga berlaku untuk perintah buruh pelabuhan dasar seperti ps.
Aneh, bukan? Mari saya tunjukkan cara mengatasi kesalahan yang mengganggu ini.
Memperbaiki 'Mendapat izin ditolak saat mencoba sambungkan ke kesalahan soket daemon Docker dengan Docker di Ubuntu
Ada dua cara untuk mengatasinya.
Perbaikan 1:Jalankan semua perintah buruh pelabuhan dengan sudo
Jika Anda memiliki akses sudo di sistem Anda, Anda dapat menjalankan setiap perintah buruh pelabuhan dengan sudo dan Anda tidak akan melihat 'Dapatkan izin ditolak saat mencoba menyambung ke soket daemon Docker' lagi.
sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
13dc0f4226dc ubuntu "bash" 17 hours ago Exited (0) 16 hours ago container-2
2d9a8c190e6c ubuntu "/bin/bash" 17 hours ago Created container-1
Tetapi menjalankan setiap perintah buruh pelabuhan dengan Sudo sangat merepotkan. Anda melewatkan menambahkan sudo ke awal dan Anda akan mendapatkan kesalahan 'izin ditolak' lagi.
Perbaikan 2:Menjalankan perintah buruh pelabuhan tanpa sudo
Untuk menjalankan perintah buruh pelabuhan tanpa sudo, Anda dapat menambahkan akun pengguna Anda (atau akun yang Anda coba perbaiki masalah ini) ke grup buruh pelabuhan.
Pertama, buat grup buruh pelabuhan menggunakan perintah groupadd. Grup mungkin sudah ada tetapi menjalankan perintah pembuatan grup tidak ada salahnya.
sudo groupadd docker
Sekarang setelah Anda memiliki grup buruh pelabuhan, tambahkan pengguna Anda ke grup ini dengan perintah usermod. Saya berasumsi bahwa Anda mencoba melakukannya untuk akun pengguna Anda sendiri dan dalam hal ini, Anda dapat menggunakan variabel $USER.
sudo usermod -aG docker $USER
Verifikasi bahwa pengguna Anda telah ditambahkan ke grup buruh pelabuhan dengan mencantumkan pengguna grup. Anda mungkin harus keluar dan masuk kembali lagi .
[email protected]:~$ groups
abhishek adm cdrom sudo dip plugdev lpadmin sambashare docker
Jika Anda memeriksa grup Anda dan grup buruh pelabuhan tidak terdaftar bahkan setelah keluar, Anda mungkin harus memulai ulang Ubuntu . Untuk menghindarinya, Anda dapat menggunakan perintah newgrp seperti ini:
newgrp docker
Sekarang jika Anda mencoba menjalankan perintah buruh pelabuhan tanpa sudo, itu akan berfungsi dengan baik.
Pemecahan masalah lebih lanjut
Dalam beberapa kasus, Anda mungkin perlu menambahkan izin tambahan ke beberapa file khususnya jika Anda pernah menjalankan perintah buruh pelabuhan dengan sudo sebelumnya.
Anda dapat mencoba mengubah kepemilikan grup dari file /var/run/docker.sock.
sudo chown root:docker /var/run/docker.sock
Anda juga dapat mencoba mengubah kepemilikan grup direktori ~/.docker.
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R
Dan kemudian coba jalankan buruh pelabuhan dengan Sudo. Seharusnya baik-baik saja.
Saya harap tutorial kecil ini membantu Anda untuk memperbaiki “Mendapat izin ditolak saat mencoba menyambung ke soket daemon Docker di unix:///var/run/docker.sock:Get http://%2Fvar%2Frun yang mengganggu:%2Fdocker.sock/v1.39/containers/json:tekan unix /var/run/docker.sock:sambungkan:izin ditolak ” kesalahan dengan Docker di Ubuntu.
Apakah itu memperbaiki masalah untuk Anda? Jika ya, saya menyambut komentar cepat terima kasih dari Anda. Jika tidak, saya akan dengan senang hati membantu Anda memperbaiki masalah ini lebih lanjut.