Recuperar arguments de ejecución del contenedor acoplable

A menudo me encuentro en la necesidad de volver a crear el contenedor con modificaciones menores a los arguments utilizados para hacer docker run contenedor originalmente (cosas como cambiar puertos publicados, networking, cantidad de memory).

Ahora estoy haciendo imágenes y ejecutándolas en lugar de contenedores viejos.

Esto funciona bien, pero no siempre tengo los parameters originales de docker run guardados y, a veces (especialmente cuando hay muchas cosas para definir) se vuelve doloroso para recuperarlos.

¿Hay alguna forma de recuperar los arguments de docker run desde un contenedor existente?

la mejor manera de hacerlo es no escribir los commands manualmente. ponerlos en un script de shell … un file .sh en linux / mac, o un file .cmd en Windows. entonces solo ejecuta el script de shell para crear su contenedor y nunca tendrá que preocuparse por volver a escribir los commands y las opciones, nunca los va a equivocar, etc.

personalmente, escribo mis scripts con "scripts npm" en mi file package.json. pero lo mismo se puede hacer con cualquier herramienta que pueda ejecutar un progtwig de command-line con arguments

Lo hago junto con algunos otros trucos para asegurarme de que nunca dejo de build mis imágenes o ejecutar mis contenedores . hace que la vida con docker sea mucho más fácil. 🙂

Puede usar docker inspect para get la configuration del contenedor. Sin embargo, rebuild el command de docker run la docker run puede ser algo tedioso.

Otra opción es search el historial de su shell utilizando el history | grep "docker run" history | grep "docker run" o ctrl+r (si usas bash ). De esta forma, no es necesario que se salga de su path para save los commands, pero aún así puede recuperarlos rápidamente.

Un par de respuestas a esto. Ejecute sus contenedores usando docker-compose , luego puede simplemente ejecutar files de compilation y conservar toda su configuration. Obviamente, compose está diseñado para aplicaciones de contenedores múltiples, pero subestimado de forma masiva para casos de uso de argumento de run compleja de un solo contenedor.

El segundo es poner su command de run en una LABEL en la image. Eche un vistazo a docker.cmd Label Schema , etc. Luego, puede recuperar fácilmente de la image (o de su file Docker).