Tengo una docker-compose.yml
que contiene varios contenedores. Tres de ellos son para mi aplicación (cliente, servidor y base de datos) y el resto son para varias herramientas de desarrollo (por ejemplo, psql, npm, manage.py, etc.). Cuando lo hago, docker-compose up
todos comienzan, pero solo quiero que comiencen los tres principales. Debido a los enlaces que he especificado, puedo comenzar solo con esos tres, docker-compose up client
pero luego la salida es solo de ese contenedor. Entonces, ¿hay alguna manera de hacer uno de los siguientes:
- Indique a docker-compose qué contenedores deben comenzar por
docker-compose up
- Obtenga resultados de todos los contenedores vinculados de
docker-compose up client
docker
docker-compose
aquavitae
fuente
fuente
docker-compose up [options] [SERVICE...]
permite iniciar cualquier subconjunto de servicios que desee enumerar.Respuestas:
Puede iniciar contenedores utilizando:
Esto ejecutará contenedores en segundo plano y la salida estará disponible desde
y consistirá en todos sus contenedores iniciados
fuente
Para iniciar un servicio particular definido en su archivo docker-compose. por ejemplo si tienes un docker-compose.yml
dado un archivo de composición como:
Algunas veces, solo desea iniciar mySQL (a veces solo desea llenar una base de datos) antes de iniciar todo su conjunto.
fuente
sudo
antesdocker-compose ...
? Eso no es necesario, ¿verdad?sudo docker-compose up db
lugar desudo docker-compose start db
start
supone que el contenedor ya existe y solo lo inicia,up
extraerá imágenes si es necesario, creará contenedores si es necesario y luego iniciará el contenedor.Oh, solo con esto:
fuente
Una buena solución es ejecutar solo los servicios deseados como este:
y el archivo services.txt tiene este aspecto:
por supuesto, si la dependencia (depende de), necesita ejecutar servicios relacionados juntos.
--build es opcional, solo por ejemplo.
fuente
Desde
docker-compose
v1.5 es posible pasar múltiplesdocker-compose.yml
archivos con la-f
bandera . Esto le permite dividir sus herramientas de desarrollo en una separadadocker-compose.yml
que luego solo incluye a pedido:Para una discusión en profundidad sobre esto, ver docker / compose # 1896 .
He creado una solicitud de extracción para agregar una funcionalidad para lograr esto con mucha más comodidad ( docker / compose # 7548 ) pero como esto requiere un cambio en la especificación del archivo compose, esto ahora se discute en compose-spec / compose-spec # 87 .
fuente
Usualmente no quieres hacer esto. Con Docker Compose, usted define los servicios que componen su aplicación.
npm
ymanage.py
son solo comandos de gestión. No necesitas un contenedor para ellos. Si necesita, por ejemplo, crear sus tablas de base de datosmanage.py
, todo lo que tiene que hacer es:Piense en ello como el dynos único que usa Heroku.
Si realmente necesita tratar estos comandos de administración como contenedores separados (y también usar Docker Compose para estos), puede crear un
.yml
archivo separado e iniciar Docker Compose con el siguiente comando:fuente