Ich habe eine docker-compose.yml
, die mehrere Behälter enthält. Drei davon sind für meine App (Client, Server und Datenbank) und der Rest für verschiedene Entwicklungstools (z. B. psql, npm, manage.py usw.). Wenn ich das mache, werden docker-compose up
alle gestartet, aber ich möchte nur, dass die drei wichtigsten beginnen. Aufgrund der von mir angegebenen Links kann ich nur diese drei mit starten, docker-compose up client
aber dann erfolgt die Ausgabe nur von diesem einen Container. Gibt es also eine Möglichkeit, eine der folgenden Aktionen auszuführen:
- Sagen Sie Docker-Compose, von welchen Containern gestartet werden soll
docker-compose up
- Holen Sie sich die Ausgabe aller verknüpften Container von
docker-compose up client
docker
docker-compose
aquavitae
quelle
quelle
docker-compose up [options] [SERVICE...]
Option können Sie jede Teilmenge von Diensten starten , die Sie auflisten möchten .Antworten:
Sie können Container starten, indem Sie Folgendes verwenden:
Dadurch werden Container im Hintergrund ausgeführt und die Ausgabe ist ab verfügbar
und es wird aus all Ihren gestarteten Containern bestehen
quelle
So starten Sie einen bestimmten Dienst, der in Ihrer Docker-Compose-Datei definiert ist. Zum Beispiel, wenn Sie eine docker-compose.yml haben
gegeben eine Erstellungsdatei wie:
Manchmal möchten Sie nur mySQL starten (manchmal möchten Sie nur eine Datenbank füllen), bevor Sie Ihre gesamte Suite starten.
quelle
sudo
vorherdocker-compose ...
? Das ist doch nicht nötig, oder?sudo docker-compose up db
anstelle vonsudo docker-compose start db
start
setzt voraus, dass der Container bereits vorhanden ist und startet ihn nur,up
zieht bei Bedarf Bilder, erstellt bei Bedarf Container und startet den Container.Oh, nur damit:
quelle
Eine gute Lösung besteht darin, nur die gewünschten Dienste wie folgt auszuführen:
und die Datei services.txt sehen folgendermaßen aus:
Wenn die Abhängigkeit (abhängige_on) besteht, müssen verwandte Dienste natürlich zusammen ausgeführt werden.
--build ist zum Beispiel optional.
quelle
Normalerweise möchten Sie dies nicht tun. Mit Docker Compose definieren Sie Dienste , die komponieren Ihre App.
npm
undmanage.py
sind nur Verwaltungsbefehle. Sie brauchen keinen Container für sie. Wenn Sie beispielsweise Ihre Datenbanktabellen mit erstellen müssen, müssen Sie lediglich Folgendesmanage.py
tun:Stellen Sie sich das als den einmaligen Prüfstand vor, den Heroku verwendet.
Wenn Sie diese Verwaltungsbefehle wirklich als separate Container behandeln müssen (und für diese auch Docker Compose verwenden müssen), können Sie eine separate
.yml
Datei erstellen und Docker Compose mit dem folgenden Befehl starten:quelle