Ich habe Docker wie hier beschrieben installiert . Ich verwende Ubuntu Trusty 14.04 (LTS) (64-Bit) . Alles während der Installation war gut. Der Befehl wird $ sudo docker run -i -t ubuntu /bin/bash
auch ordnungsgemäß ausgeführt (nachdem ich in der geöffneten Konsole "exit" eingegeben habe. Wenn ich jedoch versuche, etwas anderes zu tun, wird die Berechtigung "verweigert". Zum Beispiel:
`$ sudo docker run -d -P training/webapp python app.py`
Reuslts in Post http:///var/run/docker.sock/v1.12/containers/create: dial unix /var/run/docker.sock: permission denied
` docker info`
Reuslts in Get http:///var/run/docker.sock/v1.12/info: dial unix /var/run/docker.sock: permission denied
Wie kann man das lösen? Ich habe über das Problem gegoogelt, aber ich kann keine Lösung für meinen Fall finden.
quelle
exec $SHELL
nicht. Ich bin interessiert zu wissen, durch welchen Mechanismus das Problem behoben wurde. Das sind keine Fenster!/etc/selinux/config
SELINUX=disabled
Wenn Sie CentOS oder RedHat ausführen, müssen Sie SELinux möglicherweise zuerst deaktivieren, indem Sie Folgendes ausführen:
Führen Sie anschließend einen Neustart durch, um SELinux wieder zu aktivieren oder auszuführen
setenforce 1
.quelle
Ich hatte das gleiche Problem wegen Selinux. Sie können überprüfen, ob Selinux der Schuldige ist, indem Sie:
setenforce 0
Wenn das Deaktivieren von selinux Ihr Problem gelöst hat, ist es kein Grund, es deaktiviert zu lassen:
setenforce 1
setsebool docker_connect_any true
--priviledged
Option ausquelle
Ich gehe davon aus, dass sich Ihr Benutzername bereits in der Docker-Gruppe befindet. Um dies zu überprüfen, geben Sie den folgenden Befehl ein.
Wenn nicht, müssen Sie Ihren Benutzer mit dem folgenden Befehl zur Docking-Gruppe hinzufügen.
Wenn Sie den Befehl ausführen
sudo systemctl start docker
, wird ein Docker-Prozess erstellt. Dieser Docker-Prozess enthält einendockerd
Daemon-Thread. Der Befehl erstellt auch einen Standard-docker.sock
Unix-Socket. Derdocker.sock
Socket wird ständig vomdockerd
Daemon-Thread abgehört . Auf diese Weise können Sie IPCs auf Kernel-Ebene mitdocker.pid
process ausführen . Um diesen Docker-Socket verwenden zu können, benötigen Sie die entsprechenden Berechtigungen auf Prozess- (docker.pid
) und Dateiebene (docker.sock
). Wenn Sie also die folgenden zwei Befehle ausführen, sollte das Problem behoben sein.sudo chmod a+rwx /var/run/docker.sock # You can provide just execute permission sudo chmod a+rwx /var/run/docker.pid
quelle
In der aktuellen Version müssen wir die Gruppe nicht hinzufügen
docker
.Es ist bei der Installation automatisch vorhanden. Sie können dies mit dem folgenden Befehl überprüfen:
Um Docker als Nicht-Root-Benutzer zu verwalten , fügen Sie einfach Ihren Benutzer der Docker-Gruppe hinzu und melden Sie sich dann ab und wieder an, damit Ihre Gruppenmitgliedschaft erneut bewertet wird:
So überprüfen Sie es, wenn Sie sich erneut anmelden
Sie können sogar die Verwendung
GROUP:docker
als neue Primärgruppe erzwingen :So überprüfen Sie es, wenn Sie sich erneut anmelden
quelle