Como compartilhar imagens do Docker com outras pessoas

Construiu uma imagem Docker que você precisa compartilhar com um colega? Veja como você pode distribuir uma imagem sem que o destinatário precise executar o docker build por conta própria.
Compartilhar uma imagem predefinida em vez de um Dockerfile permite que você tenha certeza de que seu colega está executando exatamente o mesmo software. A reexecução da construção pode resultar em um ambiente sutilmente diferente. Você tem duas opções para distribuir sua imagem, dependendo da situação.
Use um registro Docker
A maneira mais fácil de compartilhar uma imagem do Docker é enviá-la para um registro do Docker. Essa funcionalidade é totalmente integrada ao Docker CLI. Você não precisa fazer nenhuma transferência manual de arquivos ao usar este método.
O registro padrão é Docker Hub. Isso permite que você compartilhe imagens publicamente e oferece um repositório privado também. Crie uma conta no Docker Hub e execute o docker login no seu terminal. Forneça os detalhes da sua conta para conectar o Docker CLI à sua conta.
Em seguida, crie sua imagem normalmente, usando o docker build. Adicione uma tag que comece com seu nome de usuário do Docker Hub:
docker build -t my-account / my-image: mais recente.
Publicidade
Em seguida, use o comando docker push para enviar a imagem marcada para o Docker Hub:
docker push my-account / my-image: mais recente
Agora sua imagem está armazenada com segurança no Docker Hub. Outros usuários poderão puxá-lo para baixo usando os comandos docker pull ou docker run. Você terminou de compartilhar sua imagem!
Para uso no mundo real, o Docker Hub pode não ser suficiente. Se você faz parte de uma equipe de desenvolvimento, provavelmente desejará manter as imagens em seu próprio servidor, em vez do registro público do Hub. Em vez disso, você pode criar um servidor de registro auto-hospedado para obter armazenamento privado totalmente compatível com os comandos docker push e docker pull. Isso permite que você compartilhe imagens facilmente com qualquer pessoa que possa acessar seu registro privado.
Exportando imagens
Se usar um registro não for uma opção, você pode exportar manualmente os arquivos de imagem do Docker. Essa funcionalidade também está integrada à CLI do Docker. Crie sua imagem e use o comando docker save para obter um arquivo tar de seu conteúdo:
docker salvar minha imagem: mais recente > my-image. tar
A exportação pode demorar alguns minutos para ser concluída. O Docker incluirá tudo o que é necessário para recriar a imagem – são todas as camadas do Dockerfile, bem como as camadas herdadas da imagem base. O arquivo também conterá informações sobre as marcas associadas à imagem.
Como a saída é um arquivo tar simples, você agora está livre para distribuí-lo da maneira que escolher. Os arquivos podem ser muito grandes, então, normalmente, será melhor fazer o upload para um servidor de arquivos ou provedor de armazenamento em nuvem.
Publicidade
Para usar uma imagem exportada, execute o comando docker load. Isso aceita um arquivo tar produzido por docker save como um fluxo de entrada. O Docker carregará o conteúdo do arquivo e o adicionará à sua lista de imagens locais.
carregamento do docker < my-image. tar
Agora você verá a imagem recém-importada na saída de imagens da janela de encaixe. Você está pronto para iniciar um novo contêiner com a execução do docker.
Exportar e importar imagens adiciona algumas etapas extras em relação ao uso de um registro do Docker. Você precisará transferir manualmente o arquivo entre os clientes. Consequentemente, essa abordagem é menos adequada para uso frequente, embora também tenha seus benefícios.
Converter imagens em um arquivo tar pode ser útil para armazenamento de longo prazo. Se você estiver ficando sem espaço no servidor de registro, arquivar imagens antigas e enviar seus tars para o armazenamento de arquivos de backup pode ser uma forma econômica de recuperar alguma capacidade. Você ainda seria capaz de recuperar a imagem se precisasse no futuro.
E quanto ao “ docker export ”?
O Docker tem outro comando relacionado à exportação, docker export. Isso não deve ser confundido com o docker save. Enquanto salvar funciona com imagens, a exportação, na verdade, gerencia contêineres individuais.
a exportação do docker produzirá um arquivo tar do sistema de arquivos de um contêiner. Isso pode ser usado para restaurar uma réplica do contêiner em outra máquina. Se você inspecionar o conteúdo do arquivo, verá que é apenas um sistema de arquivos raiz Linux normal, com diretórios como / bin, / etc e / usr.
docker export my-container > my-container. tar
Publicidade
A exportação do docker
é útil se você deseja fazer um instantâneo de um contêiner para restauração posterior. No entanto, os arquivos de contêiner não são importados da maneira que você esperava. Como um contêiner representa um ambiente ativo e em execução, você não pode &’ não “ importar ” um diretamente. Em vez disso, importar um arquivo de contêiner cria uma nova imagem.
docker import my-container. tar my-image: mais recente
Neste exemplo, o Docker pegará o sistema de arquivos em my-container. tar e construirá automaticamente uma nova imagem chamada my-image: latest. Ele terá o mesmo sistema de arquivos, mas não a mesma imagem de base ou configuração do Docker do contêiner original que você exportou.
RELACIONADO: Como começar com o novo Docker Container Registry do Github
Resumo
O Docker facilita o compartilhamento de imagens de aplicativos e ambientes de desenvolvimento com seus colaboradores. Normalmente, é melhor enviar imagens para um repositório centralizado de onde todos possam extrair. Em alguns cenários, pode fazer mais sentido exportar uma imagem para um arquivo que você distribui manualmente.
O Docker também permite exportar o sistema de arquivos de um contêiner para restauração posterior em uma imagem. Tenha cuidado ao usar isso, pois não é uma reconstrução exata e nem todos os dados do sistema de arquivos são incluídos. Quaisquer volumes montados no contêiner original não serão incluídos no arquivo do sistema de arquivos, portanto, você deve tomar medidas para fazer backup deles separadamente.
Nenhum comentário