Ao criar uma imagem de janela de encaixe, você normalmente usa docker build .
.
Mas eu descobri que você pode especificar --pull
, então todo o comando se pareceriadocker build --pull .
Não tenho certeza sobre o propósito de --pull
. A documentação oficial do Dockers diz "Sempre tente extrair uma versão mais recente da imagem" e não tenho certeza do que isso significa nesse contexto.
Você usa docker build
para criar uma nova imagem e, eventualmente, publicá-la em algum lugar no registro de um contêiner. Por que você deseja extrair algo que ainda não existe?
Eu esperaria que algo tão "simples" como esse fosse facilmente encontrado na web, mas ninguém parece ter uma pergunta semelhante a essa. O único sucesso real no google refere-se aos documentos oficiais do Dockers, que eu (como mencionado acima) não entendo.
Obrigado pela ajuda!
ubuntu:bionic
imagem, pois ela (obviamente) não possui uma versão anexada, mas continuará sendo diferente sempre que publicar uma nova imagem. Tudo faz sentido. Obrigado!ubuntu:0.1.0
por exemplo, e eles publicassem uma nova imagem, mas com a mesma versão, isto éubuntu:0.1.0
- isso significa que vocêdocker build --pull
fará o download novamente da nova imagem inteira novamente? (que seria o que a maioria das pessoas prefere eu acho)Resposta simples.
docker build
é usado para construir a partir de um arquivo docker local.docker pull
é usado para puxar do hub docker. Se você usar o docker build sem um arquivo, ele gera um erro.Quando você especifica
--pull
ou o:latest
docker tenta fazer o download da versão mais recente (se houver)Basicamente, se você adicionar --pull, ele tentará extrair a versão mais nova sempre que for executada.
fonte
O Docker permite passar a
--pull
bandeira paradocker build
, por exemplodocker build . --pull -t myimage
. Essa é a maneira recomendada de garantir que a compilação sempre use a imagem mais recente do contêiner, apesar da versão disponível localmente. No entanto, um ponto adicional vale a pena mencionar:Para garantir que sua compilação seja totalmente reconstruída, incluindo a verificação de atualizações na imagem base, use as seguintes opções ao compilar:
--no-cache
- Isso forçará a reconstrução de camadas já disponíveis.O comando completo ficará assim:
docker build . --pull --no-cache --tag myimage:version
As mesmas opções estão disponíveis para
docker-compose
:docker-compose build --no-cache --pull
fonte
--no-cache
. Se a imagem base for atualizada (e--pull
obtiver uma nova versão) que invalida automaticamente o cache; Da mesma forma, se vocêCOPY
código diferente que invalidará o cache. A única coisa que isso normalmente afetará é se você estiver fazendo algo comoapt-get install
um pacote hospedado em rede, nesse caso,--no-cache
fará com que ele verifique uma versão mais nova, mesmo que a imagem base não tenha sido atualizada.