Docker 从本地导入 tar 包为镜像(核心命令+完整步骤)
从本地 tar 包导入 Docker 镜像的核心命令是 docker load ,搭配 -i 参数指定本地 tar 包路径即可,操作极简且无需解压缩(直接识别 Docker 镜像归档格式),以下是通用步骤+贴合你 Label Studio 场景的实操示例,命令可直接复制执行。
一、前提:确认本地 tar 包的路径和名称(避免路径错误)
先执行命令查看 tar 包的准确路径(当前目录执行最便捷,若 tar 包在其他目录需写绝对路径):
bash
# 查看当前目录下的 Label Studio tar 包(示例,可根据实际文件名修改)
ls -lh ./label-studio-latest.tar
```bash
Last login: Sun Jan 25 00:04:23 2026 from 127.0.0.1
[root@VM-0-7-tencentos ~]# cd /www/server/label-studio
[root@VM-0-7-tencentos label-studio]# ls
label-studio-latest.tar
[root@VM-0-7-tencentos label-studio]# docker locad -i label-studio-latest.tar
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
Error: unknown shorthand flag: 'i' in -i
See 'podman --help'
[root@VM-0-7-tencentos label-studio]# docker load -i label-studio-latest.tar
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
Getting image source signatures
Copying blob 1733a4cd5954 done |
Copying blob 7d57262f6487 done |
Copying blob 913d0e6412c2 done |
Copying blob 55404cda3ac4 done |
Copying blob 928ff53ece94 done |
Copying blob 9501295bf47a done |
Copying blob 85158b08abfb done |
Copying blob c4ee2a8567ac done |
Copying blob 4483cb92e328 done |
Copying blob ab016b1378f5 done |
Copying blob 370ac180036a done |
Copying blob 16b40bf3149d done |
Copying blob d31908c29b3d done |
Copying blob 57bf1ab47eb9 done |
Copying blob 4f94717fa349 done |
Copying blob be6cce0b6103 done |
Copying blob fef0d1e46d54 done |
Copying blob 996179e3196a done |
Copying blob cbeffead2cac done |
Copying blob 471a38752558 done |
Copying blob 37a265a4dc10 done |
Copying config 6176f78809 done |
Writing manifest to image destination
Loaded image: docker.io/heartexlabs/label-studio:latest
[root@VM-0-7-tencentos label-studio]#
若 tar 包在其他目录,直接写绝对路径,例:/root/backup/label-studio.tar
确认输出中能看到对应的 tar 包(非空,有正常文件大小),即可继续下一步。
### 二、核心步骤:导入本地 tar 包为 Docker 镜像
#### 通用命令格式
```bash
docker load -i 本地tar包的路径/包名.tar
- 关键参数
-i:指定「输入文件」,必加参数,用于告诉 Docker 从指定 tar 包读取镜像数据; - 无需解压缩 tar 包:Docker 会自动识别镜像的分层归档结构,解压缩后反而会破坏镜像结构导致导入失败。
贴合你的 Label Studio 实操示例
情况1:tar 包在当前目录(最常用)
bash
# 导入 Label Studio 镜像 tar 包(替换为你的实际包名)
docker load -i ./label-studio-latest.tar
情况2:tar 包在其他目录(写绝对路径)
bash
# 示例:tar 包在 /root/soft 目录下
docker load -i /root/soft/label-studio-latest.tar
导入成功的典型提示
执行后若看到以下输出,说明镜像导入成功,同时会显示镜像的完整名称+标签:
bash
Loaded image: heartexlabs/label-studio:latest
# 若此前是国内源镜像导出的,会显示:Loaded image: registry.cn-hangzhou.aliyuncs.com/heartexlabs/label-studio:latest
三、关键验证:确认镜像已成功导入本地仓库
导入后执行以下命令,查看本地 Docker 镜像列表,确认 Label Studio 镜像存在:
bash
# 过滤出 label-studio 相关镜像,验证导入结果
docker images | grep label-studio
预期正常输出(包含镜像名、标签、ID 等信息,非空即成功):
bash
heartexlabs/label-studio latest xxxxxxxx 2 weeks ago 1.8GB
# 或国内源镜像名:
# registry.cn-hangzhou.aliyuncs.com/heartexlabs/label-studio latest xxxxxxxx 2 weeks ago 1.8GB
四、导入后直接使用:启动 Label Studio 容器(衔接你的实际需求)
镜像导入成功后,即可直接执行启动命令,挂载数据卷并运行容器,和直接拉取的镜像使用方式完全一致:
bash
# 后台启动容器,映射8080端口,挂载数据卷保存标注数据
docker run -it -d -p 8080:8080 -v $(pwd)/label-studio-data:/label-studio/data heartexlabs/label-studio:latest
-d:后台运行容器,不占用当前终端(推荐添加);- 挂载数据卷:确保标注数据持久化,不会因容器删除丢失。