Al crear una imagen acoplable, normalmente usa la docker build . .
Pero descubrí que puede especificar --pull , por lo que todo el comando se vería como docker build --pull .
No estoy seguro del propósito de --pull . La documentación oficial de Docker dice "Siempre intente obtener una versión más nueva de la imagen", y no estoy seguro de qué significa esto en este contexto.
Utiliza la compilación de docker build para crear una nueva imagen y, finalmente, publicarla en algún lugar en un registro de contenedor. ¿Por qué querrías sacar algo que aún no existe?
extraerá la última versión de cualquier imagen base en lugar de reutilizar lo que ya haya etiquetado localmente
Tomemos, por ejemplo, una imagen basada en una etiqueta en movimiento (como ubuntu:bionic ). upstream realiza cambios y reconstruye esto periódicamente, pero es posible que tenga una imagen de meses de antigüedad localmente. docker construirá felizmente contra la base anterior. --pull tirará como un efecto secundario para que construyas con la imagen base más reciente
por lo general, es una mejor práctica usarlo para obtener soluciones de seguridad ascendentes lo antes posible (en lugar de usar imágenes obsoletas y potencialmente vulnerables). aunque tiene que compensar los cambios importantes (y si usa etiquetas inmutables, no hay diferencia)
Respuesta sencilla. docker build se usa para compilar desde un dockerfile local. docker pull se usa para extraer desde el hub de la ventana acoplable. Si usa la compilación docker sin un archivo docker, arroja un error.
Cuando especifique --pull o :latest docker intentará descargar la versión más reciente (si corresponde)
Básicamente, si agrega --pull, intentará obtener la versión más nueva cada vez que se ejecute.
Docker permite pasar el indicador --pull a docker build , por ejemplo, docker build . --pull -t myimage . Esta es la forma recomendada de asegurarse de que la compilación siempre use la imagen de contenedor más reciente a pesar de la versión disponible localmente. Sin embargo, un punto adicional que vale la pena mencionar:
Para asegurarse de que su compilación se reconstruya por completo, incluida la verificación de la imagen base en busca de actualizaciones, use las siguientes opciones al compilar:
--no-cache : esto obligará a reconstruir las capas que ya están disponibles.
Por lo tanto, el comando completo se verá así:
docker build . --pull --no-cache --tag myimage:version
Las mismas opciones están disponibles para docker-compose :
docker-compose build --no-cache --pull