Neste artigo, iremos falar um pouco sobre Commit, Export e Import
1. Comando commit
O comando commit
é utilizado para criar uma nova imagem baseada no estado atual de um container. Isso é útil quando você deseja preservar modificações feitas manualmente dentro de um container.
Exemplo Prático
1.1. Crie um container Alpine com shell habilitado:
docker container run -dt --name alpine-commit alpine:latest
1.2. Acesse o container:
docker container exec -it alpine-commit sh
1.3. Crie um arquivo dentro do container:
echo "Arquivo criado dentro do container" > container-file
Verifique o conteúdo:
cat container-file
1.4. Abra um novo terminal no host e gere a imagem baseada no container:
docker container commit alpine-commit alpine:custom
Neste caso:
alpine
: nome da imagemcustom
: tag personalizada1.5. Confirme a criação da imagem
docker image ls
Você verá a nova imagemalpine:custom
listada
2. Comando export
O comando export
salva o sistema de arquivos de um container em um arquivo compactado .tar
.
Diferente do commit, ele não cria uma imagem diretamente, apenas gera um snapshot do container.
Exemplo Prático
2.1. Crie um container Alpine:
docker container run -dt --name alpine-export alpine:latest
2.2. Acesse o container:
docker container exec -it alpine-export sh
2.3. Instale o pacotecurl
dentro do container (simulando uma modificação):
apk add curl
2.4. Abre um novo terminal no host e exporte o container:
docker container export alpine-export -o alpine-export.tar
A flag-o
define o nome do arquivo de saída (output).
Agora você terá um arquivo chamado alpine-export.tar
contendo o sistema de arquivos do container.
3. Comando import
O comando import
transforma um arquivo .tar
(gerado pelo export
ou outros métodos) em uma nova imagem Docker.
Exemplo Prático
3.1. Importe o arquivo exportado anteriormente:
docker imagem import alpine-export.tar alpine:export
Neste caso,alpine
é o nome da imagem eexport
é a tag da imagem.
3.2. Crie um container usando essa nova imagem:
docker container run -it --name alpine-import --entrypoint /bin/sh alpine:export
3.3. Verifique se as alterações ainda estão presentes (ex.:curl
):
curl --version
Se o pacote estiver instalado, isso confirma que o estado do container foi preservado.
Resumo das Diferenças
-
commit
: Cria uma nova imagem a partir de um container. -
export
: Gera um arquivo.tar com o sistema de arquivos do container. -
import
: Cria uma imagem a partir de um arquivo.tar
.
Top comments (0)