Estou trabalhando em um escritório onde meu laptop está conectado à Internet, mas totalmente controlado. Não tenho permissão para instalar software não autorizado nele.
Minha estação de trabalho de desenvolvimento é minha para fazer o que eu quiser, mas não tem conexão com a internet.
Existe alguma maneira de eu baixar as imagens do Docker do hub como um arquivo que eu possa usar como rede para minha estação de trabalho de desenvolvimento? Semelhante a como posso baixar RPMs ou Ruby Gems e gravá-los em CD? Ou a única maneira de baixar as imagens é usando o comando 'docker pull'?
Curto: use o
save
comando CLI.https://docs.docker.com/engine/reference/commandline/save/
Você pode puxar a imagem em um computador que tenha acesso à internet.
Então você pode salvar esta imagem em um arquivo
Transfira o arquivo para o computador off-line (USB/CD/qualquer coisa) e carregue a imagem do arquivo:
(Em versões mais antigas, era apenas
docker load image.docker
, consulte os comentários para obter mais informações.)Percebo que já existe uma resposta aceita, porém queria oferecer esta solução que acho que aborda mais diretamente a pergunta feita: "Como faço para baixar uma imagem do Docker sem usar o Docker para realizar a recuperação?"
Eu tenho um problema semelhante, onde as políticas da minha empresa exigem que eu forneça a uma equipe o(s) arquivo(s) (normalmente por meio de URL) que desejo usar. Eles realizarão várias varreduras e auditorias e, em seguida, colocarão o(s) arquivo(s) em nossa rede de desenvolvimento desconectada. Não posso usar o Docker para recuperar o arquivo, exportá-lo e entregá-lo a essa equipe; portanto, a outra resposta fornecida não era uma opção para mim.
Felizmente, encontrei esta resposta no StackOverflow, que recomenda o uso de uma ferramenta útil fornecida por samalba no GitHub: https://github.com/samalba/docker-registry-debug
Claro, essa ferramenta foi criada para ser construída usando o Docker, e parte do motivo pelo qual preciso dela é porque não tenho acesso aberto ao Docker :). Então, como eu não tinha essa opção, vou explicar os passos que segui aqui (tudo isso é do commit 05fffc4344fd6f866f84c403caae3ba81193dd45 daquele repo):
A saída desse comando é uma linha de comando curl completa que pode ser usada para baixar o arquivo:
Espero que isso ajude alguém!