Holen Sie sich docker-Komponieren.yml-Datei Speicherort aus ausgeführt container?
Habe ich ein paar laufende docker-Container erstellt, durch ausführen docker-compose up
.
Gibt es eine Möglichkeit zu bekommen, den genauen Datei-Pfad der entsprechenden docker-Komponieren.yml - Datei, die zum starten dieser Container, nur durch Einsichtnahme in die Laufenden Container?
Soweit ich sehen kann, docker inspect CONTAINER_NAME
diese Informationen nicht bereitstellt, noch hat docker-verfassen bieten eine Methode, um zu Komponieren-bezogene Informationen aus einem Laufenden container.
Was ich tun möchte in einem Skript:
- Liste bestimmte laufende docker-Container auf einem host
- Holen Sie sich die entsprechenden docker-Komponieren.yml Speicherorte
- verwenden docker-verfassen neu starten, alle Container der entsprechenden Andockfenster-Komponieren Projekte auf einmal
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, was du willst, ist unmöglich, an einem bestimmten Punkt, die einzigen Dinge, die Sie tun können, meiner Meinung nach ist:
docker ps -a | grep <certain_container>
locate docker-compose.yml
und finden Sie die, die Sie wollendocker-compose restart
(tundocker-compose
zu sehen, option)wissen Sie, Ihre Frage dreht sich um eine nützliche Antwort auf die gleiche Frage, die ich habe.
Ich verwendet
docker inspect <containerID>
und dann gab es für mich die Lage, dass ich in Aussehen sollte. speziell in diesen Zeilen:Aus einer bereits ausgeführten Containers, dass Sie nicht die Kontrolle, die information ist nicht da. Sie können ableiten, die Lage mittels bind mount-Verzeichnisse, wenn der container erstellt jedem host-mounts für die relative Verzeichnisse. Andernfalls ist es möglich, die Bereitstellung von Containern ohne zu Komponieren, und es ist möglich, zu Komponieren, ohne eine compose-Datei auf dem Dateisystem (geleitet über stdin), und Komponieren Sie nicht speichern diese Informationen auf ausführen Behälter für Sie.
Wenn Sie nur wollen, führen Sie einen Neustart auf alle Container im selben Projekt, die Sie nicht brauchen, die ersten beiden Schritte, oder sogar
docker-compose
. Stattdessen können Sie ausführen:Welche mit einem label-Andockfenster-compose fügt zu jedem Projekt setzt es.
Wenn Sie wollen, um proaktiv store verfassen Speicherort der Datei für die spätere Verwendung können Sie Spritzen, die als Etikett in Ihrem Komponieren Datei:
Falls Ihre shell nicht gesetzt einem
${PWD}
Umgebungsvariable, können Sie beginnen Komponieren mit:Dann können Sie später prüfen Behälter für das label-Wert mit:
Und Sie können die Kette ein filter und inspizieren-Befehl zusammen, den Weg zu finden für ein bestimmtes Projekt:
pwd
man kann nie Benutzerdocker-compose -f ...
pwd
Abschnitt war, dass Sie gelingen kann, ein label in den Containern mit den details, die Sie wollen später. Wenn Sie überschreiben der compose-Datei zu injizieren, die als ein label, das Sie verwalten.