docker-komponuj góra / dół tylko jeden pojemnik


23

Nie udało mi się znaleźć sposobu na podniesienie / opuszczenie tylko jednego kontenera w pliku docker-compose.yml. Mogę oczywiście uruchomić i zatrzymać pojedynczy kontener, ale nie mogę wprowadzać zmian w konfiguracji kontenerów między restartami (zmienne środowiskowe, punkty montowania itp.)

Czego tu brakuje? Jaka jest najlepsza praktyka w tym przypadku?

Odpowiedzi:


3

Niedawno miałem tę potrzebę i rozwiązałem ją, mając osobny docker-compose-production.ymlplik do obsługi poprawek. Następnie pamiętaj, aby uruchomićdocker-compose -f docker-compose-production.yml...


Jak to działa, gdy nadchodzi czas docker-compose down? Czy nie sprowadziłby wszystkich kontenerów, które zostały wychowane we wszystkich plikach .yml?
Jordan Morris,

2
Możesz zrobićdocker-compose -f docker-compose-production.yml down
icarito

12

Stwierdziłem, że ma to taki sam wpływ jak kompilacja dokera w przypadku pojedynczej usługi:

docker-compose rm -f -s -v yourService

docker-compose rm

Zastosowanie: rm [opcje] [SERVICE ...]

Opcje:
-f, --force Nie pytaj o potwierdzenie usunięcia
-s, --stop Zatrzymaj kontenery, jeśli to konieczne, przed usunięciem
-v Usuń wszelkie anonimowe woluminy dołączone do kontenerów

Możesz skondensować wszystkie flagi w jeden -parametr:docker-compose rm -fsv yourService


Myślę, że usuwa dysk, przy okazji
Jordan Morris

2
Czy mógłbyś wyjaśnić flagi, co by zrobiły?
Semo

11

Proponuję sprawdzić ten doskonały wątek na stackoverflow.com. Szybka odpowiedź tutaj, aby odbudować pojedynczy pojemnik i uruchomić go ponownie:

docker-compose up -d --build worker

Byłoby to idealne rozwiązanie, jeśli na przykład zmiany dotyczyły pliku Docker, a nie tylko docker-compose.ymll


5

Możesz użyć

$ docker-compose -f docker-compose.yml up yourService

aby uruchomić tylko usługę i wszystkie wymagane przez nią zależności.

Jeśli więc twoja usługa zależy od kontenera mysql, powyższe polecenie uruchomi oba kontenery.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.