Imagens de importação e exportação do Docker, instruções detalhadas para importar e exportar contêineres e cenários de uso


1. O Docker fornece comandos para gerenciar imagens e contêineres

Exportar imagem (docker save) e importar imagem (docker load):

Este é um par de operações para trabalhar com imagens do Docker. Esta operação compactará todas as camadas de imagem e metadados em um arquivo tar. Você pode importar esse arquivo tar para qualquer ambiente do Docker usando o comando docker load. Por exemplo:

导出:docker save -o <保存路径>/myimage.tar myimage:latest
导入:docker load -i <路径>/myimage.tar

Este método é usado principalmente para compartilhar ou migrar toda a imagem, incluindo todas as versões, tags e histórico.

Contêiner de exportação (exportação docker) e contêiner de importação (importação docker):

Este também é um par de operações para trabalhar com contêineres do Docker. O comando docker export pode exportar o sistema de arquivos de um contêiner em execução como um arquivo tar. Você pode então importar este arquivo tar como uma nova imagem usando o comando docker import. Por exemplo:

导出:docker export <容器ID> > mycontainer.tar
导入:docker import mycontainer.tar

Este método é usado principalmente para compartilhar ou migrar o estado atual do contêiner. Isso não inclui o histórico ou os metadados do contêiner, como variáveis ​​de ambiente, portanto, geralmente é usado para obter instantâneos do contêiner.

总的来说,如果你想要保存整个镜像,包括它的所有历史和标签,那么你应该使用 docker save 和 docker load命令。而如果你只是想要保存一个容器的当前状态,那么你应该使用 docker export 和 docker import 命令。

2. Os cenários de uso e aplicação dos quatro comandos

1. Caso 1

Suponha que você criou uma nova imagem do Docker em seu ambiente de desenvolvimento, esta imagem contém seu aplicativo e todas as dependências, você testou esta imagem e a marcou, chame-a de "myapp:1.0". Agora você deseja mover esta imagem para produção. Nesse cenário, você deve usar os comandos docker save e docker load. A operação específica é a seguinte:

No ambiente de desenvolvimento, execute docker save -o myapp_1.0.tar myapp:1.0. Isso criará um arquivo tar chamado "myapp_1.0.tar" que contém todas as camadas e metadados da imagem "myapp:1.0".
Você pode copiar este arquivo tar para seu ambiente de produção e executar docker load -i myapp_1.0.tar lá. Isso importará a imagem "myapp:1.0", que você pode usar imediatamente na produção.

2. Caso 2

Suponha que você execute uma tarefa de análise de dados complexa em um contêiner e a tarefa produza alguns resultados após ser executada por várias horas. Você deseja salvar o estado atual deste contêiner para que possa continuar a partir deste ponto posteriormente. Nesse cenário, você deve usar os comandos docker export e docker import. A operação específica é a seguinte:

Você executa docker export mycontainer > mycontainer.tar, que criará um arquivo tar contendo o sistema de arquivos de "mycontainer".
Em seguida, você pode usar o comando docker import mycontainer.tar myanalysis:snapshot1 para criar uma nova imagem que contém o estado do seu contêiner no momento em que a tarefa está sendo executada. Você pode restaurar esta imagem mais tarde para continuar suas tarefas de análise de dados.
请注意,docker export 和 docker import 命令不会保存或恢复容器的历史或元数据,如环境变量。因此,它们更适合于保存和恢复容器的“快照”,而不是用于迁移或分享镜像。

Em segundo lugar, a análise de parâmetros dos quatro comandos

1. comando docker save:

O parâmetro -o indica o caminho e o nome do arquivo de saída, seguido do nome da imagem a ser salva. Por exemplo, docker save -o /path/to/save/myimage.tar myimage:tag

2. comando docker load:

O parâmetro -i indica o caminho e o nome do arquivo de entrada. Por exemplo, docker load -i /path/to/load/myimage.tar

3. comando de exportação do docker:

O comando docker export é seguido diretamente pelo ID ou nome do contêiner. Por exemplo, docker export mycontainer > /path/to/save/mycontainer.tar

4. comando de importação do docker:

Os argumentos para a importação do docker incluem o caminho e o nome do arquivo de entrada, bem como o nome e o rótulo da nova imagem. Por exemplo, docker import /path/to/import/mycontainer.tar newimage:tag

注意:在 docker save 和 docker load 的操作中,你在操作镜像,镜像名称后可以带标签(如果不指定标签,默认为 latest)。而在 docker export 和 docker import 的操作中,你在操作容器(对应的是一个容器的 ID 或名称)和镜像(可以指定新的镜像名称和标签)。

おすすめ

転載: blog.csdn.net/weixin_45876175/article/details/130909849