Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.6K
Vistas
¿Cómo reconstruir y actualizar un contenedor sin tiempo de inactividad con docker-compose?

Disfruto mucho usando docker-compose.

P.ej. en mi servidor, cuando quiero actualizar mi aplicación con cambios menores, solo necesito git pull origin master && docker-compose restart , funciona perfectamente.

Pero a veces, necesito reconstruir (por ejemplo, agregué una dependencia de npm, necesito ejecutar npm install nuevamente).

En este caso, hago docker-compose build --no-cache && docker-compose restart .

Esperaría que esto:

  • crear una nueva instancia de mi contenedor
  • detener el contenedor existente (después de que el más nuevo haya terminado de construirse)
  • empezar el nuevo
  • opcionalmente, elimine el anterior, pero esto podría hacerse manualmente

Pero en la práctica parece reiniciar el anterior de nuevo.

¿Es el comportamiento esperado?

¿Cómo puedo manejar una reconstrucción y comenzar una nueva después de que se construya?

¿Quizás me perdí un comando específico? ¿O tendría sentido tenerlo?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

desde el reinicio manual de docker-compose

Si realiza cambios en su configuración de docker-compose.yml, estos cambios no se reflejarán después de ejecutar este comando.

deberías poder hacer

 $docker-compose up -d --no-deps --build <service_name>

--no-deps no iniciará los servicios vinculados.

over 4 years ago · Santiago Trujillo Denunciar

0

El problema es que restart reiniciará sus contenedores actuales, que no es lo que desea.

Como ejemplo, acabo de hacer esto.

  • cambia el archivo docker por una de las imágenes
  • llama a docker-compose build para construir las imágenes
  • llamar docker-compose down 1 y docker-compose up
    • docker-compose restart NO funcionará aquí
    • usar docker-compose start en su lugar tampoco funciona

Para ser honesto, no estoy completamente seguro de que primero deba hacer un down , pero eso debería ser fácil de verificar. 1 La conclusión es que debe llamar up . Verá que se reinician los contenedores de imágenes sin cambios, pero para la imagen modificada verá recreating .

La ventaja de esto sobre simplemente llamar up --build es que puede ver el proceso de construcción primero antes de reiniciar.

1: de los comentarios; down no es necesario, simplemente puede llamar up --build . Down tiene algunos aspectos negativos, incluida la posibilidad de que sea destructivo para sus datos (de volumen).

over 4 years ago · Santiago Trujillo Denunciar

0

Use el indicador --build para el comando up , junto con el indicador -d para ejecutar sus contenedores en segundo plano:

 docker-compose up -d --build

Esto reconstruirá todas las imágenes definidas en su archivo de redacción, luego reiniciará cualquier contenedor cuyas imágenes hayan cambiado.

-d asume que no desea mantener todo funcionando en primer plano de su shell. Esto hace que actúe más como restart , pero no es obligatorio.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda