Saya telah menginstal buruh pelabuhan seperti yang dijelaskan di sini . Saya menggunakan Ubuntu Trusty 14.04 (LTS) (64-bit) . Semuanya selama instalasi dengan baik. Perintah $ sudo docker run -i -t ubuntu /bin/bash
juga selesai dengan baik (setelah saya mengetik "keluar" di konsol terbuka. Tapi ketika saya mencoba melakukan sesuatu yang lain, saya mendapat "izin ditolak". Misalnya:
`$ sudo docker run -d -P training/webapp python app.py`
Reuslts di Post http:///var/run/docker.sock/v1.12/containers/create: dial unix /var/run/docker.sock: permission denied
` docker info`
Reuslts di Get http:///var/run/docker.sock/v1.12/info: dial unix /var/run/docker.sock: permission denied
Bagaimana cara mengatasinya? Saya mencari di Google tentang masalah tetapi saya tidak dapat menemukan solusi untuk kasus saya.
sumber
exec $SHELL
tidak. Saya tertarik untuk mengetahui dari mana mekanisme keluar menyelesaikan masalah ini. Ini bukan windows!/etc/selinux/config
dan meletakkanSELINUX=disabled
, lalu reboot LinuxJika Anda menjalankan CentOS atau RedHat, Anda mungkin harus menonaktifkan SELinux terlebih dahulu dengan menjalankan:
Eiter restart setelah itu untuk mengaktifkan kembali SELinux atau menjalankan
setenforce 1
.sumber
Saya memiliki masalah yang sama, karena selinux. Anda dapat memeriksa apakah selinux adalah penyebabnya dengan:
setenforce 0
Jika menonaktifkan selinux memecahkan masalah Anda, itu bukan alasan untuk membiarkannya dinonaktifkan:
setenforce 1
setsebool docker_connect_any true
--priviledged
opsisumber
Saya berasumsi, nama pengguna Anda sudah dalam grup buruh pelabuhan. Untuk memeriksanya, berikan perintah di bawah ini.
Jika tidak, Anda perlu menambahkan pengguna Anda ke grup buruh pelabuhan dengan perintah di bawah ini.
Ketika Anda menjalankan perintah
sudo systemctl start docker
, itu menciptakan proses buruh pelabuhan. Proses buruh pelabuhan itu berisidockerd
daemon thread. Perintah ini juga membuatdocker.sock
soket Unix standar . Thedocker.sock
socket terus didengarkan olehdockerd
benang daemon. Ini membuat Anda dapat melakukan IPC tingkat kernel dengandocker.pid
proses. Untuk dapat menggunakan soket buruh pelabuhan ini, Anda harus memiliki izin yang sesuai dari level proses (docker.pid
) dan level file (docker.sock
). Jadi, menjalankan dua perintah di bawah ini akan menyelesaikan masalah Anda.sudo chmod a+rwx /var/run/docker.sock # You can provide just execute permission sudo chmod a+rwx /var/run/docker.pid
sumber
Menurut versi saat ini kami tidak perlu menambahkan grup
docker
.Itu ada secara otomatis oleh instalasi. Anda dapat memeriksa menggunakan perintah:
Jadi untuk mengelola Docker sebagai pengguna non-root , cukup tambahkan pengguna Anda ke grup buruh pelabuhan lalu keluar dan masuk kembali sehingga keanggotaan grup Anda dievaluasi kembali:
Untuk memeriksanya saat Anda masuk kembali
Anda bahkan mungkin memaksa untuk menggunakan
GROUP:docker
sebagai grup utama baru Anda:Untuk memeriksanya saat Anda masuk kembali
sumber