docker commit
O comando docker commit permite criar uma nova imagem Docker a partir de um contêiner existente. Essencialmente, você tira um "instantâneo" do estado atual de um contêiner e o transforma em uma imagem que pode ser reutilizada, compartilhada ou publicada.
Sintaxe:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]CONTAINER: O nome ou ID do contêiner que você deseja transformar em uma imagem.REPOSITORY[:TAG]: (Opcional) O repositório e a tag para a nova imagem. Se não for especificado, a imagem será criada com um ID sem nome associado.
Opções Comuns:
-a,--author: Define o autor da imagem.-m,--message: Inclui uma mensagem de commit, como uma descrição da mudança ou propósito da imagem.-p,--pause: Pausa o contêiner durante o commit para garantir a consistência da imagem. Este é o comportamento padrão, mas pode ser desativado com--pause=false.
Exemplo de Uso:
Criar uma Imagem a partir de um Contêiner:
Imagine que você tem um contêiner em execução chamado
my_containerno qual você fez várias modificações, como a instalação de novos pacotes ou a alteração de arquivos de configuração. Para salvar essas mudanças em uma nova imagem:docker commit my_container my_new_imageIsso criará uma imagem chamada
my_new_imagea partir do contêinermy_container.Incluir Informações sobre o Autor e uma Mensagem:
docker commit -a "Marcelo" -m "Instalei o Nginx e configurei o site" my_container my_new_image:v1Isso cria uma imagem chamada
my_new_imagecom a tagv1, e inclui informações sobre o autor e uma mensagem de commit.
Como Usar:
Depois de criar uma nova imagem com docker commit, você pode usá-la como qualquer outra imagem Docker:
Rodar um Contêiner a partir da Nova Imagem:
Listar as Imagens:
Aqui você verá
my_new_imagelistado, e você pode utilizá-la para criar novos contêineres.
Considerações:
Tamanho da Imagem: Cada
docker commitcria uma nova camada na imagem, o que pode aumentar o tamanho da imagem final. Sempre que possível, é melhor criar imagens baseadas em Dockerfiles, que permitem otimizações mais granulares.Controle de Versão: Usar
docker commitpode levar a uma falta de controle de versão adequado, pois é fácil perder o rastreamento das mudanças feitas no contêiner. Dockerfiles oferecem uma maneira mais clara e reproduzível de criar imagens.Consistência: Usar a opção
--pause=falsepode resultar em inconsistências, especialmente em contêineres que estão manipulando dados ativamente durante o commit. É recomendável deixar a opção de pausa ativada para garantir que a imagem capturada esteja em um estado consistente.
Esse comando é útil para capturar o estado de um contêiner em desenvolvimento ou testes, mas para produção, o uso de Dockerfiles é geralmente a melhor prática.
Last updated