在 Docker 中导入镜像文件通常有两种方式,具体取决于文件的格式(.tar
或 .oci/.docker
格式)。以下是详细步骤:
.tar
格式的镜像文件适用于通过 docker save
导出的归档文件或第三方提供的 .tar
镜像包。
docker load -i <镜像文件路径>
或
docker load < <镜像文件路径>
# 示例:导入本地的 nginx.tar 镜像文件
docker load -i nginx.tar
# 导入后检查镜像
docker images
.tar
文件通常是 docker save
导出的(例如 docker save -o nginx.tar nginx:latest
)。适用于通过 skopeo
或 buildah
等工具导出的 OCI 格式镜像(目录结构)。
docker import <解压后的OCI目录> <镜像名称:标签>
# 1. 解压OCI格式的镜像包(假设是 oci_nginx.tar.gz)
tar -xzf oci_nginx.tar.gz -C ./oci_nginx
# 2. 导入解压后的目录
docker import ./oci_nginx nginx:custom
docker import
会丢失原有镜像的元数据(如 ENTRYPOINT/CMD),需手动重建。权限不足
添加 sudo
或确保当前用户在 docker
用户组中:
sudo docker load -i file.tar
文件损坏
验证文件完整性:
file nginx.tar # 确认是有效的tar文件
tar -tf nginx.tar | head # 检查内容
导入后无标签
手动打标签:
docker tag <镜像ID> nginx:latest
空间不足
清理旧镜像或调整 Docker 存储目录:
docker system prune
bash
zcat image.tar.gz | docker load
bash
tar -xf image.tar -O manifest.json | jq
根据你的实际需求选择对应方法即可。