¿Es posible construir una imagen desde Dockerfile y ejecutarla con un solo comando?
Hay un comando docker build
para construir un Dockerfile y docker run -it
ejecutar 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 -q
genera el hash de imagen final , que puede usar como argumento paradocker run
:Y añadir
--rm
adocker run
si desea que el contenedor elimina automáticamente cuando sale.fuente
docker build
: /-q
opció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.bat
archivo. Luego en el archivo agregue esto:Para ejecutar el archivo usando powershell o cmd, haga esto:
fuente
docker-build-and-run
He creado un pequeño comando auxiliar para construir y ejecutar, en un solo comando. En Linux o Mac, puede agregar esto a su
~/.bash_profile
para que esté disponible en la Terminal.Uso:
Ejemplos:
La secuencia de comandos:
Agregue esto a un
.sh
archivo, o agréguelo a su~/.bash_profile
:fuente
También puede hacer
docker build
y canalizar el nombre de la imagen a la que da salidadocker run
:docker build
le dará texto de varias líneas... Successfully built 18e77bc0d83a
tail -n1
' '
y obtener3
rd word concut -d' ' -f3
run
conxargs -I{} docker run {}
fuente
| tee /dev/tty
despué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