2016-09-09 5 views
3

Ich bin Läufer Docker für OSX und Probleme mit der Docker Remote-API zu arbeiten.Zugriff Docker-Daemon Remote-API auf Docker für Mac

Meine Situation ist dies:

Nein Ich will laufen die verwenden Jenkins-docker-build-step-Plugin zum Erstellen eines Docker-Images, aber ich möchte, dass es den Docker-Daemon auf dem Host-Computer verwendet. In Jenkins-Einstellungen sollte DOCKER_URL also so aussehen: 2375. (Grund dafür ist, dass ich Docker nicht auf dem Jenkins-Container installieren möchte, wenn ich es bereits auf meinem Host-Rechner habe).

Gibt es eine Möglichkeit, dies zu tun oder ist de Docker für Mac derzeit nicht unterstützt? Ich habe versucht, mit dem Export von DOCKER_OPTS- oder DOCKER_HOST-Optionen zu experimentieren, bekomme aber trotzdem eine Verbindung zurück, wenn ich zum Beispiel http://localhost:2375/images/json anrufe.

Grundsätzlich geht es bei der Frage um das Aktivieren der Docker for OSX-Remote-API, wobei der Anwendungsfall von einem Jenkins-Docker-Container aus aufgerufen wird.

+0

Wenn ich die Antwort von http folgen: //stackoverflow.com/questions/38 293806 Ich erhalte diesen Fehler: Ungültiges Bindungsadressenformat: -H unix: ///var/run/docker.sock -H tcp: // localhost: 2376 –

+0

Wie wäre es, nur den Docker-Socket vom Host zum Container zu teilen? jenkins: ... Bände: - /var/run/docker.sock:/var/run/docker.sock – Lauri

+1

Diese wie eine gültige Option scheint, aber jetzt bekomme ich eine Erlaubnis anstelle einer Verbindung verweigert verweigert. /var/run/docker.sock ist ein Symlink zu ~/Library/Containers/com.docker.docker/Data/s60, aber selbst wenn ich den Symlink als meinen eigenen Benutzer neu erstelle, bekomme ich den Permission denied error ... '[ INFO] E/A-Ausnahme (java.io.IOException), die beim Verarbeiten der Anforderung an {} -> unix: // localhost: 80: Berechtigung verweigert wurde –

Antwort

2

Sie könnten in Erwägung ziehen, Socat zu verwenden, es hat meine Probleme gelöst, die ähnlich zu sein scheinen.

socat TCP-LISTEN: 2375, ReuseAddr, Gabel UNIX-CONNECT: /var/run/docker.sock &

Dies Sie Ihre OSX Host-Docker API von einem Docker Behälter mit zugreifen können: tcp:// [Host-IP-Adresse]: 2375

auf OSX socat kann wie folgt installiert werden: brauen socat

installiert Siehe hier für eine lange Diskussion zu diesem Thema: Plugin: Docker fails to connect via unix:// on Mac OS X