У меня есть docker-compose.yml
несколько контейнеров. Три из них предназначены для моего приложения (клиент, сервер и база данных), а остальные - для различных инструментов разработки (например, psql, npm, manage.py и т. Д.). Когда я делаю, docker-compose up
все они запускаются, но я хочу, чтобы только три основных из них начали. Из-за ссылок, которые я указал, я могу начать только с этих трех, docker-compose up client
но тогда вывод будет только из этого одного контейнера. Итак, есть ли способ сделать одно из следующего:
- Скажите docker-compose, какие контейнеры должны быть запущены
docker-compose up
- Получить вывод из всех связанных контейнеров из
docker-compose up client
docker
docker-compose
живая вода
источник
источник
docker-compose up [options] [SERVICE...]
позволяет вам запускать любое подмножество услуг, которые вы хотите перечислить.Ответы:
Вы можете запустить контейнеры, используя:
Это будет запускать контейнеры в фоновом режиме и вывод будет доступен из
и он будет состоять из всех ваших запущенных контейнеров
источник
Для запуска определенной службы, определенной в вашем файле docker-compose. например, если у вас есть docker-compose.yml
заданный файл составления как:
Иногда вы хотите запустить только MySQL (иногда вы просто хотите заполнить базу данных), прежде чем запускать весь свой пакет.
источник
sudo
раньшеdocker-compose ...
? Это не обязательно, верно?sudo docker-compose up db
вместоsudo docker-compose start db
start
предполагает, что контейнер уже существует, и просто запускает его,up
при необходимости извлекает изображения, создает контейнеры, если необходимо, затем запускает контейнер.Ох, просто с этим:
источник
Одним из хороших решений является запуск только желаемых сервисов:
и файл services.txt выглядит так:
Конечно, если зависимость (зависит_), необходимо запускать связанные службы вместе.
--build необязателен, например.
источник
Начиная
docker-compose
с версии 1.5 возможно передавать несколькоdocker-compose.yml
файлов с-f
флагом . Это позволяет вам разделить ваши инструменты разработки на отдельные,docker-compose.yml
которые вы затем включаете только по требованию:Для подробного обсуждения этого см. Докер / состав # 1896 .
Я создал запрос на извлечение, чтобы добавить функциональность для достижения этого с гораздо большим удобством ( docker / compose # 7548 ), но, поскольку это требует изменения спецификации файла compose, это сейчас обсуждается в compose-spec / compose-spec # 87 .
источник
Вы обычно не хотите этого делать. С помощью Docker Compose вы определяете сервисы, которые составляют ваше приложение.
npm
иmanage.py
просто команды управления. Вам не нужен контейнер для них. Если вам нужно, скажем, создать таблицы базы данных с помощьюmanage.py
, все, что вам нужно сделать, это:Думайте об этом как об одноразовых династиях, которые использует Героку.
Если вам действительно нужно обрабатывать эти команды управления как отдельные контейнеры (а также использовать для них Docker Compose), вы можете создать отдельный
.yml
файл и запустить Docker Compose с помощью следующей команды:источник