Ich habe docker-machine 0.1.0 und docker-compose 1.1.0 unter Mac OS 10.8.5 installiert. Docker-Machine läuft normal und kann sich per Docker-Machine ssh verbinden.
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
dev * virtualbox Running tcp://192.168.99.100:2376
Kann jedoch keine Verbindung von docker-compose herstellen.
$ docker-compose up
Es konnte keine Verbindung zum Docker-Daemon unter http+unix://var/run/docker.sock hergestellt werden - läuft es?
Wenn es sich um einen nicht standardmäßigen Speicherort handelt, geben Sie die URL mit der Umgebungsvariablen DOCKER_HOST an.
Mein Dockerfile und docker-compose.yml ist hier.
Dockerfile
FROM centos:centos7
DOCKER_HOST tcp://192.168.99.100:2376
docker-compose.yml
web:
build:.
Warum kann keine Verbindung hergestellt werden? Irgendwelche Ideen?
Lösung des Problems
Einfache Lösung für mich: sudo docker-compose up
UPDATE 2016-3-14: Irgendwann im Docker-Installationsprozess (oder docker-compose?) gibt es einen Vorschlag und ein Beispiel, um Ihren Benutzernamen zur „Docker"-Gruppe hinzuzufügen. Dadurch können Sie vermeiden, "sudo" vor allen Docker-Befehlen zu benötigen, wie folgt:
~ > docker run -it ubuntu /bin/bash
root@665d1ea76b8d:/# date
Mon Mar 14 23:43:36 UTC 2016
root@665d1ea76b8d:/# exit
exit
~ >
Schauen Sie sich die Ausgabe der Installationsbefehle (sowohl Docker als auch die zweite Installation für Docker-Compose) genau an, und Sie werden den erforderlichen Schritt finden. Es ist auch hier dokumentiert: https://subosito.com/posts/docker-tips/
Schweiß? Unterlassen Sie!
Sind Sie es leid, jedes Mal sudo docker einzugeben, wenn Sie einen Befehl erteilen? Ja, es gibt einen Weg, damit umzugehen. Obwohl Docker natürlich einen Root-Benutzer erfordert, können wir eine root-äquivalente Gruppe für Docker-Operationen angeben.
Sie können eine Gruppe namens Docker erstellen und dann den gewünschten Benutzer zu dieser Gruppe hinzufügen. Nach dem Neustart des Docker-Dienstes muss der Benutzer nicht jedes Mal sudo eingeben, wenn Docker-Vorgänge ausgeführt werden. Wie sieht es mit Shell-Befehlen aus? als root, los gehts:
> sudo groupadd docker
> sudo gpasswd -a username docker
> sudo service docker restart
Erledigt!
UPDATE 2017-3-9Docker-Installationsanweisungen wurden hier aktualisiert.
Schritte nach der Installation für Linux
Dieser Abschnitt enthält optionale Verfahren zum Konfigurieren von Linux-Hosts für eine bessere Zusammenarbeit mit Docker.
Verwalten Sie Docker als Nicht-Root-Benutzer
Der Docker-Daemon bindet an einen Unix-Socket statt an einen TCP-Port. Standardmäßig gehört dieser Unix-Socket dem Benutzer root und andere Benutzer können nur mit sudo darauf zugreifen. Der Docker-Daemon wird immer als Root-Benutzer ausgeführt.
Wenn Sie sudo nicht verwenden möchten, wenn Sie den docker-Befehl verwenden, erstellen Sie eine Unix-Gruppe namens docker und fügen Sie ihr Benutzer hinzu. Wenn der Docker-Daemon startet, macht er den Besitz des Unix-Sockets für die Docker-Gruppe lesbar/schreibbar.
So erstellen Sie die Docker-Gruppe und fügen Ihren Benutzer hinzu:
# 1. Create the docker group.
$ sudo groupadd docker
# 2. Add your user to the docker group.
$ sudo usermod -aG docker $USER
# 3. Log out and log back in so that your group membership is re-evaluated.
# 4. Verify that you can run docker commands without sudo.
$ docker run hello-world
Dieser Befehl lädt ein Testimage herunter und führt es in einem Container aus. Wenn der Container ausgeführt wird, gibt er eine Informationsmeldung aus und wird beendet.
Keine Kommentare:
Kommentar veröffentlichen