Conteúdo
Tutorial do docker save: exporte e carregue imagens (save, load, export e import)
docker save e docker load são usados para transferir imagens; docker export e docker import lidam com o sistema de arquivos de um contêiner, e as configurações da imagem podem ser diferentes. Para entender os conceitos básicos, consulte Imagens Docker.
Sintaxe
docker save [OPTIONS] IMAGE [IMAGE...]
docker load [OPTIONS]
docker export [OPTIONS] CONTAINER
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
Parâmetros
| Comando | Parâmetro | Descrição |
|---|---|---|
save | -o, --output string | Grava no arquivo especificado; se não for especificado, envia a saída para STDOUT |
save | --platform strings | Salva somente a plataforma especificada. Separe várias plataformas por vírgulas, por exemplo, linux/amd64,linux/arm64/v8 |
load | -i, --input string | Lê do arquivo tar especificado; se não for especificado, lê de STDIN |
load | --platform strings | Carrega somente a plataforma especificada |
load | -q, --quiet | Não exibe a saída do carregamento |
export | -o, --output string | Grava o sistema de arquivos do contêiner no arquivo especificado |
import | -c, --change list | Aplica instruções do Dockerfile à imagem criada |
import | -m, --message string | Define a mensagem de commit da imagem importada |
import | --platform string | Define a plataforma, se o servidor oferecer suporte a várias plataformas |
Exemplos
Salvar uma imagem, compactar com gzip e carregar
$ docker save -o nginx.tar nginx:1.30-alpine
$ ls -lh nginx.tar
-rw------- 1 root root 25.7M Oct 25 15:31 nginx.tar
$ docker save nginx:1.30-alpine | gzip > nginx.tar.gz && ls -lh nginx.tar.gz
-rw-r--r-- 1 root root 24.9M Oct 25 15:31 nginx.tar.gz
$ docker load -i nginx.tar.gz
Loaded image: nginx:1.30-alpine
$ docker images nginx
IMAGE ID DISK USAGE CONTENT SIZE EXTRA
nginx:1.30-alpine 47928bf67eb6 93.5MB 27MB U
docker save -ograva a imagem em um arquivo tar; usado diretamente, o arquivo de 25.7MB contém os dados da imagem.- A imagem fica com 24.9MB após a compactação gzip, apenas 0.8MB a menos que o tar original. O efeito da compactação é limitado.
docker load -iconsegue ler diretamente um arquivo compactado com gzip e carregarnginx:1.30-alpine.- Após o carregamento,
docker imagesmostra a imagem. O valorDISK USAGEé 93.5MB, um dado diferente do tamanho do arquivo de arquivamento.
Exportar e importar um sistema de arquivos
$ docker export web -o web-fs.tar && ls -lh web-fs.tar
-rw------- 1 root root 60.5M Oct 25 15:31 web-fs.tar
$ docker import web-fs.tar myweb:snapshot
sha256:56e3f92534ca8c5aedd8de576ae2433f1864d3d3b51de847a8dc8dd7d503da4d
$ docker run --rm myweb:snapshot cat /usr/share/nginx/html/hi.txt
hello
$ docker image inspect -f '{{.Config.Cmd}}' nginx:1.30-alpine
[nginx -g daemon off;]
$ docker image inspect -f '{{.Config.Cmd}}' myweb:snapshot
[]
$ docker run --rm myweb:snapshot
docker: Error response from daemon: no command specified
Run 'docker run --help' for more information
docker exportgrava o sistema de arquivos do contêinerwebem um tar; em seguida,docker importcria a imagemmyweb:snapshot.- A imagem importada ainda contém os arquivos: ao especificar
cat /usr/share/nginx/html/hi.txt, você consegue lerhello. .Config.Cmddenginx:1.30-alpinecontémnginx -g daemon off;, mas o.Config.Cmddemyweb:snapshoté um array vazio[].- Como a imagem importada não tem um comando padrão, executar
docker rundiretamente retornano command specified. Você precisa especificar o comando ao executar.
Capítulos relacionados
Exercícios
Exercício: salve nginx:1.30-alpine em um arquivo compactado com gzip e, em seguida, carregue a imagem desse arquivo.
Resposta
docker save nginx:1.30-alpine | gzip > nginx.tar.gz
docker load -i nginx.tar.gz
Perguntas frequentes
Qual é a diferença entre docker save e docker export?
docker save arquiva uma imagem, que depois pode ser carregada com docker load; docker export exporta o sistema de arquivos de um contêiner, e docker import cria uma nova imagem a partir dele.
Quanto espaço a compactação gzip do resultado de docker save economiza?
Neste caso, o arquivo tar de nginx:1.30-alpine tem 25.7MB, e fica com 24.9MB após a compactação gzip. A diferença é pequena.
Por que executar docker run diretamente após docker import mostra no command specified?
O .Config.Cmd de myweb:snapshot, a imagem importada, é um array vazio [] e não há comando padrão. Especificar cat /usr/share/nginx/html/hi.txt permite ler o arquivo, mas executar sem informar um comando mostra no command specified.
Atualizado 26 de outubro de 2026