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:
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_container
no 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:Isso criará uma imagem chamada
my_new_image
a partir do contêinermy_container
.Incluir Informações sobre o Autor e uma Mensagem:
Isso cria uma imagem chamada
my_new_image
com 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_image
listado, e você pode utilizá-la para criar novos contêineres.
Considerações:
Tamanho da Imagem: Cada
docker commit
cria 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 commit
pode 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=false
pode 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