Gibt es eine elegante Möglichkeit, Bildern, die von Docker Pull stammen, SSL-Zertifikate hinzuzufügen?
Ich suche nach einer einfachen und reproduzierbaren Möglichkeit, eine Datei in / etc / ssl / certs hinzuzufügen und update-ca-certificates auszuführen. (Dies sollte Ubuntu- und Debian-Bilder abdecken).
Ich verwende Docker unter CoreOS und der Coreos-Computer vertraut den erforderlichen SSL-Zertifikaten, aber die Docker-Container haben offensichtlich nur den Standard.
Ich habe versucht docker run --entrypoint=/bin/bash
, das Zertifikat hinzuzufügen und auszuführen update-ca-certificates
, aber dies scheint den Einstiegspunkt dauerhaft zu überschreiben.
Ich frage mich jetzt auch, ob es eleganter wäre, nur /etc/ssl/certs
von der Kopie des Host-Computers auf den Container zu montieren . Dies würde implizit ermöglichen, dass die Container denselben Dingen wie der Host vertrauen.
Ich arbeite mit einem nervigen Proxy, der alles aufgibt :(. Das bricht SSL und macht die Arbeit mit Containern irgendwie seltsam.
quelle
Antworten:
Montieren Sie die Zertifikate auf dem Docker- Container mit
-v
:quelle
Ich versuche etwas Ähnliches zu tun. Wie oben kommentiert, möchten Sie dann ein neues Image mit einer benutzerdefinierten Docker-Datei (unter Verwendung des Images, das Sie als Basis-Image gezogen haben),
ADD
Ihrem Zertifikat, erstellenRUN update-ca-certificates
. Auf diese Weise erhalten Sie jedes Mal einen konsistenten Status, wenn Sie einen Container von diesem neuen Image aus starten.Nehmen wir an, eine
docker build
gegen diese Docker-Datei erzeugte IMAGE_ID. Beim nächsten Maldocker run -d [any other options] IMAGE_ID
enthält der mit diesem Befehl gestartete Container Ihre Zertifikatinformationen. Einfach und reproduzierbar.quelle
Wie in einem Kommentar oben vorgeschlagen , können Sie den Zertifikatspeicher auf dem Host, wenn er mit dem Gast kompatibel ist, einfach direkt bereitstellen.
Auf einem Debian-Host (und Container) habe ich erfolgreich Folgendes ausgeführt:
quelle
Sie können den relativen Pfad verwenden, um das Volume in den Container einzubinden:
Beachten Sie das hintere Häkchen auf dem,
pwd
das Ihnen das aktuelle Arbeitsverzeichnis gibt. Es wird davon ausgegangen, dass Sie dencerts
Ordner im aktuellen Verzeichnis haben, in dem derdocker run
ausgeführt wird. Ein bisschen großartig für die lokale Entwicklung und halten Sie den Ordner "certs" für Ihr Projekt sichtbar.quelle