Docker 教程

Docker 保存镜像

在 Docker 中,使用 docker image save 命令将一个或多个 Docker 镜像保存为一个压缩文件(通常是 .tar 格式)。

命令有什么作用呢?假如我们有几台服务器,其中只有一台服务器能够访问互联网,我们可以在能够访问互联网的机器上下载我们需要的镜像,然后将镜像通过 docker image save 命令将镜像保存为 tar 格式,然后使用 scp 将保存的镜像 tar 拷贝到其他机器,最后使用 docker image load 命令导入镜像。

语法

语法如下:

用法:docker image save [OPTIONS] IMAGE [IMAGE...]

将一个或多个镜像保存到 tar 压缩包(默认情况下,流到 STDOUT)

别名:
  docker image save、docker save

选项
  -o, --output string  写入文件,而不是 STDOUT

示例

以下是一些示例用法:

保存单个镜像

假设要保存名为myapp:latest的镜像,可以使用以下命令:

root@hxstrive:~# docker image save -o myapp.tar myapp:latest
root@hxstrive:~# ll | grep myapp
-rw-------  1 root root 162381824  8月 22 15:41 myapp.tar

这里,-o参数指定输出文件的名称为myapp.tar。

保存多个镜像

如果要同时保存多个镜像,可以在命令中依次列出镜像的名称或 ID。例如,保存myapp:latest和anotherapp:v1两个镜像:

root@hxstrive:~# docker image save -o combined_images.tar myapp:latest nginx:1.20
root@hxstrive:~# ll | grep combined
-rw-------  1 root root 308298240  8月 22 15:43 combined_images.tar

生成的combined_images.tar文件将包含这两个镜像。

保存所有镜像(慎用)

要保存本地所有的镜像,可以使用以下命令,但这可能会生成一个非常大的文件,并且执行时间可能较长:

root@hxstrive:~# docker image save -o all_images.tar $(docker image ls -q)
root@hxstrive:~# ll | grep all_images.tar
-rw-------  1 root root 1830694912  8月 22 15:45 all_images.tar

这里使用了命令替换,docker image ls -q列出所有镜像的 ID,然后传递给docker image save命令。

保存的镜像文件可以在其他地方使用docker image load命令加载到 Docker 环境中。

说说我的看法
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号