docker-compose arriba / abajo solo un contenedor

33

No he podido encontrar una manera de subir / bajar solo un contenedor en un archivo docker-compose.yml. Puedo iniciar y detener un solo contenedor, pero no puedo hacer cambios en la configuración de un contenedor entre reinicios (variables de entorno, puntos de montaje, etc.)

¿Que me estoy perdiendo aqui? ¿Cuál es la mejor práctica en este caso?

Inquisidor Shm
fuente

Respuestas:

4

Recientemente tuve esta necesidad y la resolví al tener un docker-compose-production.ymlarchivo separado para lidiar con los ajustes. Entonces recuerda lanzar condocker-compose -f docker-compose-production.yml...

icarito
fuente
¿Cómo funciona esto cuando llega el momento de hacerlo docker-compose down? ¿No derribaría todos los contenedores que se han presentado en todos los archivos .yml?
Jordan Morris
2
Puedes hacerlodocker-compose -f docker-compose-production.yml down
icarito
¿Y dónde especifica el contenedor que desea subir / bajar? -fes el selector de componer archivo, no contenedor.
astrowalker
31

Descubrí que esto tiene el mismo efecto que docker-compose para un solo servicio:

docker-compose rm -f -s -v yourService

docker-compose rm

Uso: rm [opciones] [SERVICIO ...]

Opciones:
-f, --force No solicite confirmar la eliminación
-s, --stop Detenga los contenedores, si es necesario, antes de eliminar
-v Elimine los volúmenes anónimos conectados a los contenedores.

Puedes condensar todas las banderas en un solo -parámetro:docker-compose rm -fsv yourService

Jordan Morris
fuente
Creo que dispone el disco, por cierto
Jordan Morris
2
¿Podría explicar las banderas, qué harían?
Semo
13

Te sugiero que revises este excelente hilo en stackoverflow.com. La respuesta rápida aquí para reconstruir el contenedor único y reiniciarlo es:

docker-compose up -d --build worker

Esta sería la solución ideal si, por ejemplo, sus cambios involucraran su Dockerfile y no solo docker-compose.ymll

gabriel1836
fuente
7

Puedes usar

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

para iniciar solo su Servicio y todas las dependencias que requiera.

Entonces, si yourService depende del contenedor mysql, el comando anterior iniciaría ambos contenedores.

usuario674669
fuente