Mam docker-compose.yml
który zawiera kilka pojemników. Trzy z nich są przeznaczone dla mojej aplikacji (klient, serwer i baza danych), a pozostałe są przeznaczone dla różnych narzędzi programistycznych (np. Psql, npm, manage.py itp.). Kiedy robię, docker-compose up
wszystkie są uruchamiane, ale chcę, aby zaczęły się tylko trzy główne. Ze względu na linki, które określiłem, mogę zacząć tylko od tych trzech, docker-compose up client
ale wtedy dane wyjściowe pochodzą tylko z tego jednego kontenera. Czy można więc wykonać jedną z następujących czynności:
- Poinformuj docker-compose, od których kontenerów ma się zacząć
docker-compose up
- Pobierz dane wyjściowe ze wszystkich połączonych kontenerów z
docker-compose up client
docker
docker-compose
Aqua vitae
źródło
źródło
docker-compose up [options] [SERVICE...]
pozwala rozpocząć dowolny podzbiór usług, które chcesz wymienić.Odpowiedzi:
Możesz rozpocząć kontenery, używając:
Spowoduje to uruchomienie kontenerów w tle, a dane wyjściowe będą dostępne z
i będzie się składał ze wszystkich rozpoczętych kontenerów
źródło
Aby uruchomić określoną usługę zdefiniowaną w pliku Docker-Compose. na przykład jeśli masz plik docker-compose.yml
mając plik redagowania, taki jak:
Czasami chcesz uruchomić tylko mySQL (czasami po prostu chcesz wypełnić bazę danych) przed uruchomieniem całego pakietu.
źródło
sudo
wcześniejdocker-compose ...
? To nie jest konieczne, prawda?sudo docker-compose up db
zamiastsudo docker-compose start db
start
zakłada, że kontener już istnieje i po prostu go uruchamia, wup
razie potrzeby pobierze obrazy, w razie potrzeby utworzy kontenery, a następnie uruchomi kontener.Och, tylko z tym:
źródło
Dobrym rozwiązaniem jest uruchamianie tylko pożądanych usług, takich jak ta:
i services.txt wyglądają następująco:
oczywiście, jeśli zależność (depends_on), musi wspólnie uruchamiać powiązane usługi.
--build jest opcjonalne, tylko na przykład.
źródło
Od wersji
docker-compose
1.5 możliwe jest przekazywanie wieludocker-compose.yml
plików z-f
flagą . Dzięki temu możesz podzielić narzędzia deweloperskie na osobne,docker-compose.yml
które następnie dołączasz tylko na żądanie:Aby uzyskać dogłębną dyskusję na ten temat, zobacz docker / compose # 1896 .
Utworzyłem żądanie ściągnięcia, aby dodać funkcjonalność umożliwiającą osiągnięcie tego z dużo większą wygodą ( docker / compose # 7548 ), ale ponieważ wymaga to zmiany specyfikacji pliku redagowania, jest to teraz omówione w compose-spec / compose-spec # 87 .
źródło
Zwykle nie chcesz tego robić. Za pomocą Docker Compose definiujesz usługi, które tworzą Twoją aplikację.
npm
imanage.py
są tylko poleceniami zarządzania. Nie potrzebujesz do nich pojemnika. Jeśli potrzebujesz, powiedzmy, utwórz tabele bazy danych za pomocąmanage.py
, wszystko, co musisz zrobić, to:Pomyśl o tym jak o jednorazowych hamowniach Heroku.
Jeśli naprawdę potrzebujesz traktować te polecenia zarządzania jako oddzielne kontenery (a także używać do nich Docker Compose), możesz utworzyć oddzielny
.yml
plik i uruchomić Docker Compose za pomocą następującego polecenia:źródło