Saya menginstal Docker di mesin saya di mana saya memiliki OS Ubuntu. Setelah daripada saya menginstal buruh pelabuhan, ketika saya menjalankan
sudo docker run hello-world
Semua baik-baik saja, tetapi saya ingin menyembunyikan kata sudo
untuk membuat lebih pendek perintahnya.
Jika saya menulis perintah tanpa kata sudo
docker run hello-world
Itu menampilkan berikut ini:
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.35/containers/create: dial unix /var/run/docker.sock: connect: permission denied.See 'docker run --help'.
Itu terjadi sama ketika saya mencoba untuk membuat
docker-compose up
Bagaimana saya bisa menyelesaikan ini?
docker
docker-compose
Carlos Andres
sumber
sumber
Jawaban:
Jika Anda ingin menjalankan buruh pelabuhan sebagai pengguna non-root, Anda harus menambahkannya ke grup buruh pelabuhan.
Diambil dari dokumentasi resmi buruh pelabuhan: manage-docker-as-a-non-root-user
sumber
sudo systemctl restart docker
docker
grup pada dasarnya memberikan akses root , tanpa memberlakukan kebijakan & audit sudo reguler. Lihat masalah GitHub # 9976 untuk detail dan diskusi.Setelah upgrade saya mendapat izin yang ditolak. Melakukan langkah-langkah ' instal postingan ' mkb ' tidak memiliki perubahan apa pun karena pengguna saya sudah ada di grup' buruh pelabuhan '; Saya mencoba lagi-dua kali tanpa hasil.
Setelah satu jam pencarian, solusi berikut ini akhirnya berhasil:
Solusi datang dari Olshansk .
Sepertinya upgrade telah membuat ulang soket tanpa izin yang cukup untuk grup 'buruh pelabuhan'.
Masalah
Chmod keras ini membuka lubang keamanan dan setelah setiap reboot, kesalahan ini mulai lagi dan lagi dan Anda harus menjalankan kembali perintah di atas setiap kali. Saya ingin solusi sekali dan untuk semua. Untuk itu Anda memiliki dua masalah:
1) Masalah dengan
SystemD
: Soket hanya akan dibuat dengan pemilik 'root' dan grup 'root'.Anda dapat memeriksa masalah pertama ini dengan perintah ini:
Jika semua ini baik, Anda akan melihat
root/docker
'tidakroot/root
'.2) Masalah dengan Login Grafis : /superuser/1348196/why-my-linux-account-only-belongs-to-one-group
Anda dapat memeriksa masalah kedua ini dengan perintah ini:
Jika semuanya benar, Anda harus melihat buruh pelabuhan grup dalam daftar. Jika tidak coba perintahnya
jika Anda melihat maka grup buruh pelabuhan itu karena bug.
Solusi
Jika Anda berhasil mendapatkan solusi untuk login grafis, ini harus dilakukan:
Tetapi jika Anda tidak dapat mengelola bug ini, solusi yang tidak terlalu buruk adalah:
Ini berfungsi karena Anda berada dalam lingkungan grafis dan mungkin satu-satunya pengguna di komputer Anda. Dalam kedua kasus Anda membutuhkan reboot (atau an
sudo chmod 666 /var/run/docker.sock
)sumber
:ro
sumber
newgrp
perintah diminta untuk password dan tidak menerima password user saya. Alih-alihsu - $USER
bekerja untuk menghindari keluar / masuk.docker
grup/var/run/docker.sock
sumber
Saya mengatasi kesalahan ini dengan perintah:
sumber
Anda selalu dapat mencoba
Manage Docker as a non-root user
paragraf di https://docs.docker.com/install/linux/linux-postinstall/ docs.Setelah melakukan ini juga jika masalah berlanjut, Anda dapat menjalankan perintah berikut untuk menyelesaikannya:
sumber
chmod 666
) adalah bencana keamanan ... Ini seharusnya tidak pernah direkomendasikan.Ini memperbaiki masalah saya.
sumber
Untuk memperbaiki masalah itu, saya mencari di mana docker dan docker-compose saya terinstal. Dalam kasus saya,
docker
dipasang di/usr/bin/docker
dandocker-compose
dipasang di/usr/local/bin/docker-compose
jalur. Kemudian, saya menulis ini di terminal saya:Untuk buruh pelabuhan:
Kepada
docker-compose
:Sekarang saya tidak perlu menulis perintah docker pada kata saya
sudo
/ ************************************************* ********************** /
ERRATA:
Solusi terbaik dari masalah ini dikomentari oleh @mkasberg. Saya mengutip komentar:
That might work, you might run into issues down the road. Also, it's a security vulnerability. You'd be better off just adding yourself to the docker group, as the docs say. sudo groupadd docker, sudo usermod -aG docker $USER.
Docs:
https://docs.docker.com/install/linux/linux-postinstall/Terima kasih banyak!
sumber
docker
grup, seperti yang dikatakan dokumen.sudo groupadd docker
,sudo usermod -aG docker $USER
.lightdm dan kwallet dikirimkan dengan bug yang tampaknya tidak lulus kelompok tambahan saat masuk. Untuk mengatasi ini, saya juga, di samping
sudo usermod -aG docker $USER
, harus berkomentaruntuk
di
/etc/pam.d/lightdm
sebelum me-reboot , agar buruh pelabuhan benar-benar memiliki efek.bug: https://bugs.launchpad.net/lightdm/+bug/1781418 dan di sini: https://bugzilla.redhat.com/show_bug.cgi?id=1581495
sumber
gunakan perintah ini
kemudian restart komputer Anda ini berhasil untuk saya.
sumber
Serius teman-teman. Jangan menambahkan Docker di grup Anda atau memodifikasi soket posix (tanpa SELinux yang mengeras), ini adalah cara sederhana untuk membuat root privesc. Cukup tambahkan alias di .bashrc Anda, ini lebih sederhana dan lebih aman sebagai: alias dc = 'sudo docker'.
sumber
Anda dapat mengikuti langkah-langkah ini dan ini akan bekerja untuk Anda:
sudo groupadd docker
sudo usermod -aG docker $USER
groups
newgrp docker
sudo chown root:docker /var/run/docker.sock
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R
Setelah tes itu Anda bisa berlari
docker ps -a
sumber
chown
file docker.sock.Setelah Anda menginstal buruh pelabuhan, membuat grup 'buruh pelabuhan' dan menambahkan pengguna ke dalamnya, edit file unit layanan buruh pelabuhan:
Tambahkan dua baris ke bagian [Layanan]:
Simpan file (Ctrl-X, y, Enter)
Jalankan dan aktifkan layanan Docker:
sumber
Setelah Instalasi Docker di Centos. Saat menjalankan perintah di bawah ini saya mendapat kesalahan di bawah ini.
Ubah Grup dan Izin untuk docker.socket
Verifikasi dengan menggunakan perintah buruh pelabuhan di bawah ini
sumber
sudo chmod 666 /var/run/docker.sock
ini membantu saya ketika saya mendapatkan kesalahan bahkan untuk masuk ke buruh pelabuhan Tapi sekarang ini berfungsi dengan baik di sistem saya.
sumber