Moby: Comando Docker para verificar se uma imagem de contêiner local está desatualizada?

Criado em 10 fev. 2017  ·  3Comentários  ·  Fonte: moby/moby

Diga em comparação com a imagem remota no dockerhub. Tenho procurado uma maneira canônica de fazer isso, mas tudo que consegui encontrar são scripts bash frágeis e coisas do gênero. Nenhuma forma oficial e recomendada de fazer essa verificação. Uma questão de estouro de pilha também não resultou em nenhuma resposta definitiva ainda. Nem tem essa pergunta semelhante .

Ser capaz de verificar se uma imagem local está desatualizada em comparação com seu remoto é muito útil para ambientes de desenvolvimento e teste (docker-cloud permite até mesmo configurar contêineres de atualização automática para isso). Eu sei que existe a possibilidade de usar um webhook para acionar um re-pull após uma criação de imagem bem-sucedida, mas digamos que eu queira iniciar a verificação do meu servidor, em vez de ter que escutar.

Estou certo ao presumir que atualmente não há nenhum comando docker disponível para realizar essa verificação, ou perdi uma solução nativa docker óbvia para esse problema?

aredistribution areimages kinquestion

Comentários muito úteis

No entanto, há uma diferença entre "atualizar às cegas" e apenas ser notificado sobre a alteração da imagem remota (usando a mesma tag), para que você possa iniciar o processo de construção e controle de qualidade.

Todos 3 comentários

Não, atualmente não há opção embutida para verificar se uma imagem está "desatualizada". Atualizar contêineres automaticamente é algo que realmente difere por caso de uso; Atualizar "cegamente" para a imagem mais recente não é trivial. Por exemplo some-image:latest pode resultar em uma imagem _completamente_ diferente (por exemplo, ubuntu:latest refere-se à última versão "LTS", que em algum ponto mudou de 14.04 para 16.04), ao mesmo tempo, some-image:1.2.3 "parece" uma tag SemVer (ish), mas não há garantia, porque cabe ao autor da imagem decidir sobre o esquema de "tag" e o que significa (basicamente, as tags são apenas um formulário "etiqueta").

Por esse motivo, é recomendado usar um identificador imutável para seus contêineres (por exemplo ubuntu<strong i="9">@sha256</strong>:aabbbcccddd ); que permite que você _teste_ a versão exata da imagem que está executando e tenha a garantia de que é a _mesma_ versão testada em seu processo de controle de qualidade.

Tendo dito o acima, existem algumas opções;

  • ao usar docker compose , você pode docker-compose pull para obter a versão mais recente de todas as imagens usadas em sua pilha de composição
  • ao _construir_ imagens, você pode docker build --pull ..... forçar a extração da imagem definida em FROM antes de iniciar uma construção
  • ao usar serviços; docker service update --force --image foo:bar <servicename> resolve a versão mais recente da imagem foo:bar especificada e "fixa" todas as instâncias do serviço a essa versão

Espero que isso responda a sua pergunta. Lembre-se de que o rastreador de problemas do GitHub não se destina a ser um fórum de suporte geral, mas para relatar bugs e solicitações de recursos. Para outro tipo de pergunta, considere usar um dos;

Vou encerrar este problema porque não é um bug, mas fique à vontade para continuar a conversa 👍

No entanto, há uma diferença entre "atualizar às cegas" e apenas ser notificado sobre a alteração da imagem remota (usando a mesma tag), para que você possa iniciar o processo de construção e controle de qualidade.

De fato. Um mecanismo estável pelo qual se pode detectar atualizações em um contêiner _sem baixar novamente todo o contêiner todos os dias_ seria incrível.

As atualizações de segurança são extremamente importantes e, com a ausência desse recurso, não é mais fácil manter-se atualizado ...

Esta página foi útil?
0 / 5 - 0 avaliações