2016-08-19 3 views
13

Ich versuche, das Andockfenster awslogs driver zu verwenden und den folgenden Fehler zu erhalten: "docker: Fehler Antwort vom Daemon: Protokolltreiber konnte nicht initialisiert werden: NoCredentialProviders: keine gültigen Provider in der Kette. Veraltet."Wie stelle ich Anmeldeinformationen für den docker awslogs-Treiber mithilfe von Docker für Mac bereit?

Nach this GitHub comment muss ich die Umgebungsvariable AWS_SHARED_CREDENTIALS_FILE für den Docker-Dämon festlegen, aber ich bin mir nicht sicher, wie dies bei der Verwendung von Docker für Mac zu tun ist.

Der Befehl, den ich um den Behälter zu starten bin mit ist:

docker run -d \ 
--log-driver=awslogs \ 
--log-opt awslogs-region=us-east-1 \ 
--log-opt awslogs-group=my-log-group \ 
my-image 

Version Informationen:

  • Docker für Mac 1.12.1-rc1-beta23 bauen 11375
  • OS X El Capitan 10.11.6
+0

Mit welchem ​​Befehl starten Sie den Andock-Container? – tokeryberg

+0

@tokeryberg, meine Frage bearbeitet, um den Befehl hinzuzufügen. –

+0

Aus Neugier - warum möchten Sie die Protokolle von Ihrem Laptop an aws gesendet werden? –

Antwort

1

but I'm not sure how to do that when using Docker for Mac.

Mit boot2docker müssten Sie /var/lib/boot2docker/profile ändern, um diese Variable hinzuzufügen.
Siehe "Docker daemon config file on boot2docker".
Es bleibt über den TinyCore-basierten VM-Neustart bestehen, und der Docker-Daemon würde dies berücksichtigen.

Mit dem neuen docker for Mac xhyve-based sollte die Idee die gleiche sein.
/var/lib/boot2docker/profile existiert auch, wie gezeigt in this answer.
Die offiziellen docker dameon doc Punkte:

--config-file=/etc/docker/daemon.json Daemon configuration file 

So versuchen, diese Datei zu ändern.

Standardmäßig werden die Kommentare erwähnen:

~/Library/Containers/com.docker.docker/Data/database/com.doc‌​ker.driver.amd64-lin‌​ux/etc/docker/daemon‌​.json 
+0

Das hat bei mir nicht funktioniert. '/ var/lib/boot2docker /' nicht vorhanden (Ich benutze Docker 1.12.1-rc1-beta23 Build 11375), so dass ich es erstellt und eine Profildatei, exportierte AWS_SHARED_CREDENTIALS_FILE darin, und neu gestartet Docker, aber ich habe den gleichen Fehler bekommen. –

+0

@MikeOttum Aber Sie verwenden Docker für Mac, richtig? Ich kann mich nicht erinnern, ob diese neue xhyve-Version boot2docker verwendet oder nicht, aber wenn der Ordner boot2docker nicht existiert ... nehme ich nicht an. Versuchen Sie in diesem Fall, sich '/ usr/lib/systemd/system/docker.service' anzuschauen: IT verweist möglicherweise auf eine Umgebungsdatei, die Sie ändern und Ihre EXPORT-Datei hinzufügen können. – VonC

+0

das ist richtig, ich benutze Docker für Mac OS X El Capitan 10.11.6. '/ usr/lib/systemd' existiert nicht auf meinem System. Ich habe einen 'find/| grep docker.service' und es kam leer. : -/ –

0

Informationen aus dieser Antwort genommen Verwendung: Docker deamon config path under mac os

Sie können auf die VM-Schicht verbinden, die das Docker Daemon läuft mit:

screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty 

Und Sie können /etc/docker/daemon.json ändern, um dort die benötigten Variablen hinzuzufügen.

Sobald Sie Ihre Änderungen vornehmen möchten, können Sie einfach laufen:

service docker restart 

aus dem moby Terminal die Docker-Daemon neu zu starten.

Beachten Sie, dass die Änderungen nicht bestehen bleiben, wenn Sie docker von Ihrem Mac neu starten.

Wenn Sie bei der Verbindung mit dem Befehl screen einen Anmeldebildschirm sehen, versuchen Sie den Benutzernamen: root, um auf das System zuzugreifen.

+0

Ich bin in der Lage zu verbinden zur Bildschirmsitzung (Danke dafür!), aber ich bin nicht sicher, was ich in '/ etc/docker/daemon.json' ändern muss, um AWS-Anmeldeinformationen zu setzen. Ich habe versucht, eine Export-Zeile in '/ etc/default/docker' und'/etc/docker/profile' zu ​​setzen (wie in https://github.com/docker/docker/issues/19392#issuecomment-221654053 erwähnt), aber kein Glück. Ich denke, ich werde damit eine andere Richtung gehen, bis ich zu Linux wechseln kann, aber ich schätze die Hilfe. –

+0

@MikeOttum Sie müssen '/ etc/docker/daemon.json' nach dem Beispiel [hier] (https://docs.docker.com/v1.10/engine/reference/commandline/daemon/), in ändern der Abschnitt * Daemon Konfigurationsdatei *. Für Ihre Bequemlichkeit, der 'daemon.json' Datei würde in etwa wie folgt aussehen: ' { \t "storage-Fahrer": "AUFS", \t "debug": true, \t „log-Treiber ": "awslogs", \t "log-opts": [" awslogs-region = us-east-1" , "awslogs-group = myLogGroup"] } ' jedoch überschreibt docker Neustart die Datei. Wahrscheinlich müssen Sie die Variablen hinzufügen: '/ etc/init.d/docker' – aemus

Verwandte Themen