概述
在某些场景下,我们需要自定义保存及加载一些 docker 镜像,如你开发完成包之后还不想推送到 docker 镜像仓库,需发给测试同学进行测试;又或者,你担心你使用的mysql
的5.7
版本的镜像仓库之后无法访问或者被删除,导致你现在基于5.7
版本开发的功能受到影响,你需要本地保存一份镜像以防止镜像无法访问或者丢失的风险。
本文将详细介绍如何导出 Docker 镜像以及如何加载本地镜像。
镜像的导出
镜像的导出有两种方式,一种是使用命令,另一种是通过Portainer
可视化界面来进行导出。
使用 docker save
命令导出镜像
首先,确保你已经在本地有一个需要导出的 Docker 镜像。你可以使用以下命令查看本地的镜像列表:
docker images
找到你想要导出的镜像后,使用 docker save
命令将其导出为一个 tar 文件:
docker save -o <output-filename>.tar <image-name>:<tag>
例如:
docker save -o image-nginx.tar nginx:latest
这将把 nginx:latest
镜像保存为 image-nginx.tar
文件。
使用Portainer
进行导出
在Portainer
的镜像管理页面,可以通过Export
方便的对镜像进行导出。
镜像的加载
Portainer
目前不支持通过可视化界面进行镜像的加载,只能通过命令的形式来进行加载。
当你有一个导出的 Docker 镜像文件(如前面步骤中生成的 image-nginx.tar
),你可以在本地或其他机器上加载这个镜像。
将 tar 文件传输到目标机器上(如果需要),然后在目标机器的命令行中运行以下命令来加载镜像:
docker load -i <path-to-your-tar-file>
如加载刚刚导出的 nginx 镜像。
docker load -i image-nginx.tar