¿Es posible construir una imagen desde Dockerfile y ejecutarla con un solo comando?
Hay un comando docker buildpara construir un Dockerfile y docker run -itejecutar la imagen.
¿Existe alguna combinación de estos dos comandos para que sea más fácil construir y ejecutar con un solo comando?
docker
dockerfile
Centelleo
fuente
fuente

Respuestas:
No, no hay un solo comando. Pero si etiqueta su imagen a medida que la construye, será más fácil de ejecutar:
fuente
docker rmi foo.Si desea evitar el etiquetado, solo
docker build -qgenera el hash de imagen final , que puede usar como argumento paradocker run:Y añadir
--rmadocker runsi desea que el contenedor elimina automáticamente cuando sale.fuente
docker build: /-qopción. Para que sea silencioso, generar solo la etiqueta autogenerada. Y eso es. Siéntase libre de transformar ese stdin como desee.docker build . | tee /dev/tty | tail -n1 | cut -d' ' -f3 | xargs -I{} docker run --rm {}Si usa Makefile, este fragmento me parece útil:
No necesita etiquetado, como en la respuesta @ jonathon-reinhart, pero también obtiene la salida de compilación.
fuente
Utilizo docker-compose para esta conveniencia ya que la mayoría de las aplicaciones que estoy construyendo están hablando con servicios externos tarde o temprano, así que si voy a usarlo de todos modos, ¿por qué no usarlo desde el principio? Solo tenga docker-compose.yml como:
y luego solo ejecuta la aplicación con:
Reconstruirá la imagen o reutilizará el contenedor dependiendo de si hubo cambios en la definición de la imagen.
fuente
PC con Windows
Haz un
run.batarchivo. Luego en el archivo agregue esto:Para ejecutar el archivo usando powershell o cmd, haga esto:
fuente
docker-build-and-runHe creado un pequeño comando auxiliar para construir y ejecutar, en un solo comando. En Linux o Mac, puede agregar esto a su
~/.bash_profilepara que esté disponible en la Terminal.Uso:
Ejemplos:
La secuencia de comandos:
Agregue esto a un
.sharchivo, o agréguelo a su~/.bash_profile:fuente
También puede hacer
docker buildy canalizar el nombre de la imagen a la que da salidadocker run:docker buildle dará texto de varias líneas... Successfully built 18e77bc0d83atail -n1' 'y obtener3rd word concut -d' ' -f3runconxargs -I{} docker run {}fuente
| tee /dev/ttydespuésdocker build .para obtener la salida completa!Para cualquiera que busque una solución reutilizable, puede instalar este complemento acoplable que creé: https://github.com/stasmihailov/docker-script
Entonces podría compilar y ejecutar un Dockerfile de la siguiente manera:
fuente