Introdução
Neste laboratório, você aprenderá como usar o comando docker image import para criar imagens Docker a partir de várias fontes. Você explorará a importação de imagens diretamente de uma URL remota, a importação de um arquivo tar local usando a entrada padrão, a importação de um arquivo tar local com uma mensagem de commit e a importação de um diretório local com novas configurações.
Através de exercícios práticos, você obterá experiência prática no uso das diferentes opções do comando docker image import e entenderá como verificar as imagens importadas. Este laboratório irá equipá-lo com as habilidades necessárias para criar eficientemente imagens Docker a partir de arquivos tar ou diretórios existentes, proporcionando flexibilidade em seu fluxo de trabalho Docker.
Importar uma imagem de uma URL remota
Nesta etapa, você aprenderá como importar uma imagem Docker diretamente de uma URL remota. Isso é útil quando você tem um arquivo tarball de imagem hospedado em um servidor web e deseja carregá-lo em seu ambiente Docker sem baixá-lo manualmente primeiro.
Primeiro, vamos usar o comando curl para baixar um arquivo tarball de imagem de exemplo de uma URL remota. Usaremos um arquivo tarball de imagem disponível publicamente para fins de demonstração.
curl -o ~/project/alpine.tar https://labex.io/images/alpine.tar
Este comando baixa o arquivo tarball da imagem da URL especificada e o salva como alpine.tar em seu diretório ~/project. A flag -o especifica o nome e o local do arquivo de saída.
Em seguida, usaremos o comando docker image import para importar este arquivo tarball para o seu ambiente Docker. O comando import pode receber uma URL ou um caminho de arquivo como entrada. Ao usar uma URL, o Docker baixa o conteúdo diretamente e o importa.
docker image import https://labex.io/images/alpine.tar
Este comando importa a imagem da URL remota. O Docker fará o download do arquivo tarball e criará uma nova imagem a partir de seu conteúdo. Por padrão, a imagem importada não terá repositório ou tag.
Para verificar se a imagem foi importada, você pode listar as imagens disponíveis usando o comando docker images.
docker images
Você deve ver uma imagem com <none> para REPOSITORY e TAG, e um tempo CREATED recente. Esta é a imagem que você acabou de importar.
Você também pode importar a imagem e dar a ela um repositório e uma tag durante o processo de importação. Isso é feito adicionando o repositório e a tag desejados após a URL.
docker image import https://labex.io/images/alpine.tar alpine:latest
Este comando importa a mesma imagem, mas a marca como alpine:latest.
Agora, liste as imagens novamente para ver a imagem recém-taggeada.
docker images
Você deve agora ver uma imagem com o repositório alpine e a tag latest.
Importar uma imagem de um tarball local usando STDIN
Na etapa anterior, você aprendeu como importar uma imagem Docker de uma URL remota. Nesta etapa, você aprenderá como importar uma imagem Docker de um arquivo tarball local usando a entrada padrão (STDIN). Este método é útil quando você tem um arquivo tarball de imagem local e deseja direcionar seu conteúdo diretamente para o comando docker image import.
Primeiro, certifique-se de ter o arquivo alpine.tar em seu diretório ~/project da etapa anterior. Caso contrário, você pode baixá-lo novamente usando curl:
curl -o ~/project/alpine.tar https://labex.io/images/alpine.tar
Agora, usaremos o comando cat para ler o conteúdo do arquivo alpine.tar e direcioná-lo para o comando docker image import. O argumento - para docker image import informa que ele deve ler de STDIN.
cat ~/project/alpine.tar | docker image import -
Este comando lê o arquivo alpine.tar e envia seu conteúdo como entrada para o comando docker image import. O Docker então importa a imagem dos dados recebidos. Semelhante à importação de uma URL sem especificar uma tag, a imagem importada não terá repositório ou tag por padrão.
Para verificar se a imagem foi importada, liste as imagens disponíveis:
docker images
Você deve ver outra imagem com <none> para REPOSITORY e TAG.
Você também pode especificar um repositório e uma tag ao importar de STDIN. A sintaxe é semelhante à importação de uma URL.
cat ~/project/alpine.tar | docker image import - alpine:stdin
Este comando importa a imagem de STDIN e a marca como alpine:stdin.
Liste as imagens novamente para confirmar a nova tag:
docker images
Você deve agora ver uma imagem com o repositório alpine e a tag stdin.
Usar STDIN é uma maneira flexível de importar imagens, especialmente ao encadear comandos ou trabalhar com arquivos tarballs compactados, onde você pode descompactar e importar de uma só vez.
Importar uma imagem de um tarball local com uma mensagem de commit
Nas etapas anteriores, você importou imagens de uma URL e STDIN. Nesta etapa, você aprenderá como importar uma imagem de um arquivo tarball local e adicionar uma mensagem de commit durante o processo de importação. Adicionar uma mensagem de commit pode ajudá-lo a documentar a origem ou o propósito da imagem importada.
Primeiro, certifique-se de ter o arquivo alpine.tar em seu diretório ~/project. Caso contrário, baixe-o:
curl -o ~/project/alpine.tar https://labex.io/images/alpine.tar
Agora, usaremos o comando docker image import com a flag -m para adicionar uma mensagem de commit. Também especificaremos o caminho do arquivo local como a fonte.
docker image import -m "Imported alpine base image" ~/project/alpine.tar alpine:commit
Neste comando:
-m "Imported alpine base image"adiciona a mensagem de commit especificada ao histórico da imagem.~/project/alpine.taré o caminho para o arquivo tarball local.alpine:commité o repositório e a tag desejados para a imagem importada.
Após executar este comando, o Docker importará a imagem do tarball local e aplicará a mensagem de commit.
Para verificar a importação e a mensagem de commit, você pode inspecionar a imagem usando o comando docker image history.
docker image history alpine:commit
Este comando mostra o histórico da imagem alpine:commit. Você deve ver uma entrada com a mensagem de commit "Imported alpine base image" na coluna COMMENT.
Você também pode listar as imagens para confirmar a nova tag:
docker images
Você deve ver uma imagem com o repositório alpine e a tag commit.
Adicionar mensagens de commit é uma boa prática para rastrear as alterações e a origem de suas imagens Docker, especialmente ao importar de fontes externas.
Importar uma imagem de um diretório local com novas configurações
Nas etapas anteriores, você importou imagens de arquivos tarball. Nesta etapa, você aprenderá como importar uma imagem de um diretório local e aplicar novas configurações durante o processo de importação. Isso é útil quando você tem um snapshot do sistema de arquivos em um diretório e deseja transformá-lo em uma imagem Docker com configurações específicas, como o comando a ser executado.
Primeiro, vamos criar uma estrutura de diretórios simples e um arquivo que será incluído em nossa imagem.
mkdir ~/project/myimage
echo "Hello, Docker!" > ~/project/myimage/hello.txt
Isso cria um diretório chamado myimage dentro do seu diretório ~/project e um arquivo chamado hello.txt dentro dele, contendo o texto "Hello, Docker!".
Agora, usaremos o comando docker image import para importar o conteúdo do diretório ~/project/myimage. Também usaremos a flag -c para especificar alterações de configuração para a imagem. Neste caso, definiremos a instrução CMD, que define o comando padrão a ser executado quando um contêiner é iniciado a partir desta imagem.
docker image import -c 'CMD ["/bin/cat", "/hello.txt"]' ~/project/myimage myimage:latest
Neste comando:
-c 'CMD ["/bin/cat", "/hello.txt"]'define o comando padrão para a imagem como/bin/cat /hello.txt. A flag-cpermite que você aplique instruções do Dockerfile comoCMD,ENTRYPOINT,ENV,EXPOSE,LABEL,ONBUILD,STOPSIGNAL,USEReWORKDIR.~/project/myimageé o caminho para o diretório local contendo o conteúdo do sistema de arquivos.myimage:latesté o repositório e a tag desejados para a imagem importada.
Após executar este comando, o Docker criará uma nova imagem com base no conteúdo do diretório ~/project/myimage e aplicará a configuração CMD especificada.
Para verificar a importação e a configuração, você pode listar as imagens:
docker images
Você deve ver uma imagem com o repositório myimage e a tag latest.
Agora, vamos executar um contêiner a partir desta imagem para ver se a instrução CMD é aplicada corretamente.
docker run myimage:latest
Este comando inicia um contêiner a partir da imagem myimage:latest. Como definimos o CMD como /bin/cat /hello.txt, o contêiner deve executar este comando e imprimir o conteúdo do arquivo hello.txt, que é "Hello, Docker!".
Você deve ver "Hello, Docker!" impresso em seu terminal. Isso confirma que o conteúdo do diretório foi importado e a configuração CMD foi aplicada com sucesso.
Resumo
Neste laboratório, aprendemos como usar o comando docker image import para criar imagens Docker a partir de várias fontes. Começamos importando uma imagem diretamente de uma URL remota, demonstrando como carregar um tarball de imagem hospedado online sem download manual. Isso envolveu o uso do curl para baixar um tarball de exemplo e, em seguida, o comando docker image import com a URL como entrada, mostrando como importar com e sem especificar um repositório e tag.
As etapas subsequentes, embora não totalmente detalhadas no conteúdo fornecido, provavelmente cobririam a importação de imagens de arquivos tarball locais usando STDIN, a importação com uma mensagem de commit para melhor rastreamento e a importação de um diretório local enquanto aplicam novas configurações. Essas etapas ilustrariam ainda mais a flexibilidade e os diferentes casos de uso do comando docker image import para criar e gerenciar imagens Docker.



