docker-compose вверх / вниз всего один контейнер


33

Я не смог найти способ увеличить / уменьшить только один контейнер в файле docker-compose.yml. Я могу, конечно, запускать и останавливать один контейнер, но не могу вносить изменения в конфигурацию контейнеров между перезапусками (переменными среды, точками монтирования и т. Д.)

Что мне здесь не хватает? Какова лучшая практика в этом случае?

Ответы:


4

У меня недавно была эта потребность, и я решил ее, создав отдельный docker-compose-production.ymlфайл для работы с настройками. Тогда не забудьте запустить сdocker-compose -f docker-compose-production.yml...


Как это работает, когда приходит время docker-compose down? Разве это не разрушит все контейнеры, которые были подняты во всех файлах .yml?
Джордан Моррис

2
Вы можете сделатьdocker-compose -f docker-compose-production.yml down
icarito

И где вы указываете контейнер, который вы хотели бы получить вверх / вниз? -fявляется селектором составного файла, а не контейнера.
Astrowalker

31

Я обнаружил, что это имеет тот же эффект, что и docker-compose для одного сервиса:

docker-compose rm -f -s -v yourService

docker-compose rm

Использование: rm [options] [SERVICE ...]

Опции:
-f, --force Не запрашивать подтверждение удаления
-s, --stop Остановить контейнеры, если необходимо, перед удалением
-v Удалить все анонимные тома, прикрепленные к контейнерам

Вы можете сжать все флаги в один -параметр:docker-compose rm -fsv yourService


Я думаю, что удаляет диск, кстати
Джордан Моррис

2
Не могли бы вы объяснить флаги, что они будут делать?
Semo

13

Я бы посоветовал вам проверить эту отличную тему на stackoverflow.com. Быстрый ответ здесь, чтобы перестроить отдельный контейнер и перезапустить его:

docker-compose up -d --build worker

Это было бы идеальным решением, если бы, например, ваши изменения включали ваш Dockerfile, а не только docker-compose.ymll


7

Ты можешь использовать

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

запустить только ваш сервис и все необходимые ему зависимости.

Поэтому, если yourService зависит от контейнера mysql, приведенная выше команда запустит оба контейнера.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.