Moby: ¿Comando de Docker para verificar si una imagen de contenedor local está desactualizada?

Creado en 10 feb. 2017  ·  3Comentarios  ·  Fuente: moby/moby

Digamos en comparación con la imagen remota en dockerhub. He estado buscando una forma canónica de hacer esto, pero todo lo que he podido encontrar son scripts bash quebradizos y cosas por el estilo. No hay una forma oficial recomendada de realizar dicha verificación. Una pregunta de desbordamiento de pila tampoco ha dado lugar a respuestas definitivas todavía. Tampoco esta pregunta similar .

Ser capaz de verificar si una imagen local está desactualizada en comparación con su remota es bastante útil para los entornos de desarrollo y preparación (docker-cloud incluso le permite configurar contenedores de actualización automática para esto). Sé que existe la posibilidad de usar un webhook para activar un re-pull después de una compilación de imagen exitosa, pero digamos que quiero poder iniciar la verificación desde mi servidor, en lugar de tener que escucharlo.

¿Estoy en lo cierto al suponer que actualmente no hay un comando de la ventana acoplable disponible para realizar esta verificación, o me he perdido una solución nativa de la ventana acoplable obvia para este problema?

aredistribution areimages kinquestion

Comentario más útil

Sin embargo, existe una diferencia entre "actualizar a ciegas" y simplemente recibir una notificación sobre el cambio de imagen remota (usando la misma etiqueta), para que pueda comenzar su proceso de compilación y control de calidad.

Todos 3 comentarios

No, actualmente no hay una opción incorporada para verificar si una imagen está "desactualizada". La actualización automática de contenedores es algo que realmente difiere según el caso de uso; La actualización "ciega" a la última imagen no es trivial. Por ejemplo, some-image:latest puede resultar en una imagen _completamente_ diferente (por ejemplo, ubuntu:latest refiere a la última versión "LTS", que en algún momento cambió de 14.04 a 16.04), al mismo tiempo, some-image:1.2.3 "se ve" como una etiqueta SemVer (ish), pero no hay garantía, porque depende del autor de la imagen decidir sobre el esquema de "etiqueta" y lo que significa (básicamente, las etiquetas son solo un formulario "etiqueta").

Por esta razón, se recomienda utilizar un identificador inmutable para sus contenedores (por ejemplo, ubuntu<strong i="9">@sha256</strong>:aabbbcccddd ); que le permite _probar_ la versión exacta de la imagen que está ejecutando y tener la garantía de que es la misma versión que se probó en su proceso de control de calidad.

Dicho lo anterior, existen algunas opciones;

  • al usar docker compose , puede docker-compose pull para extraer la última versión de todas las imágenes utilizadas en su pila de redacción
  • cuando _construye_ imágenes, puede docker build --pull ..... forzar la extracción de la imagen definida en FROM antes de comenzar una construcción
  • al usar servicios; docker service update --force --image foo:bar <servicename> resuelve la última versión de la imagen foo:bar especificada y "fija" todas las instancias del servicio a esa versión

Espero que esto responda tu pregunta. Tenga en cuenta que el rastreador de problemas de GitHub no está diseñado como un foro de soporte general, sino para informar errores y solicitudes de funciones. Para otro tipo de preguntas, considere usar una de;

Voy a cerrar este problema porque esto no es un error, pero siéntete libre de continuar la conversación 👍

Sin embargo, existe una diferencia entre "actualizar a ciegas" y simplemente recibir una notificación sobre el cambio de imagen remota (usando la misma etiqueta), para que pueda comenzar su proceso de compilación y control de calidad.

En efecto. Un mecanismo estable mediante el cual uno pueda detectar actualizaciones en un contenedor _sin volver a descargar el contenedor completo todos los días_ sería increíble.

Las actualizaciones de seguridad son extremadamente importantes, y la falta de esta función no hace que sea más fácil mantenerse actualizado ...

¿Fue útil esta página
0 / 5 - 0 calificaciones