Saya menghadapi masalah serupa, yang merupakan masalah perizinan dan penyebab masalah ini adalah karena daemon Docker / server selalu berjalan sebagai rootpengguna, dan ingin Anda untuk selalu mengawali perintah docker dengannya sudo.
Daemon Docker mengikat ke soket Unix bukan port TCP. Secara default soket Unix dimiliki oleh pengguna rootdan pengguna lain hanya dapat mengaksesnya menggunakan sudo.
Untuk memperbaikinya, inilah yang bekerja untuk saya:
Pertama, periksa apakah Anda memiliki grup buruh pelabuhan yang sudah dibuat:
cat /etc/group
Jika Anda tidak menemukan dockerdalam daftar yang ditampilkan, maka Anda harus membuatnya:
sudo groupadd docker
Selanjutnya, konfirmasikan Anda userdan Anda groupmenggunakan perintah di bawah ini:
cat /etc/group
Gulir ke seluruh untuk melihat grup untuk buruh pelabuhan. Seharusnya dari format ini
docker:x:140:promisepreston
dimana dockeraku groupdan promiseprestonakuuser
Sekarang kami dapat menambahkan pengguna Anda ke grup buruh pelabuhan
Hanya untuk File Kontainer Docker:
Salin dan jalankan perintah di bawah ini di terminal Anda persis seperti yang dinyatakan tanpa memodifikasinya, terlepas dari gambar docker / wadah / perintah yang ingin Anda jalankan atau sedang coba jalankan atau sedang melemahkan masalah izin:
sudo usermod -aG docker $USER
Setelah menjalankan perintah di atas, Anda harus keluar dan masuk kembali sehingga keanggotaan grup Anda dievaluasi kembali. Namun, di Linux, Anda juga dapat menjalankan perintah berikut di bawah ini untuk mengaktifkan perubahan pada grup ( Salin dan jalankan perintah di bawah ini di terminal Anda persis bagaimana hal itu dinyatakan tanpa mengubahnya dengan cara apa pun, terlepas dari gambar docker / wadah / perintah yang Anda ingin menjalankan atau mencoba menjalankan atau sedang mengesampingkan masalah izin ):
newgrp docker
Anda sekarang dapat memverifikasi bahwa Anda dapat menjalankan perintah buruh pelabuhan tanpa izin sudo, dengan menjalankan perintah yang menyebabkan masalah izin lagi, katakan ( Ganti my-commanddengan nama gambar / wadah / perintah Anda ):
docker run my-command
Untuk file sistem file Docker dan Lokal:
Jika Anda memiliki salinan file di sistem file lokal Anda, maka Anda dapat mengubah kepemilikan direktori aplikasi tempat file aplikasi disimpan, menggunakan format ini:
sudo chown <your_user>:<your_group> -R my-app-directory/
Jadi dalam kasus saya adalah:
sudo chown promisepreston:docker -R my-app-directory/
Catatan: Silakan jalankan perintah ini di dalam direktori induk yang menampung direktori aplikasi.
Itu saja.
saya harap ini membantu