点击学习开源企业 Docker 镜像仓库 Harbor 软件 教程。
在 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 环境中。
点击学习开源企业 Docker 镜像仓库 Harbor 软件 教程。