Saya menghadapi masalah serupa, yang merupakan masalah perizinan dan penyebab masalah ini adalah karena daemon Docker / server selalu berjalan sebagai root
pengguna, 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 root
dan 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 docker
dalam daftar yang ditampilkan, maka Anda harus membuatnya:
sudo groupadd docker
Selanjutnya, konfirmasikan Anda user
dan Anda group
menggunakan 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 docker
aku group
dan promisepreston
akuuser
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-command
dengan 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