当使用 docker import 命令导入镜像时,REPOSITORY 和 TAG 字段可能会为 null,因为 docker import 命令不会保留镜像的元数据,例如镜像名称和标签。这是因为 docker import 命令主要用于将本地文件系统中的文件或目录导入为 Docker 镜像,而不涉及 Docker 镜像仓库中的镜像。
如果你想要保留镜像的元数据(如 REPOSITORY 和 TAG),应该使用 docker load 命令来加载保存了镜像元数据的 tar 归档文件。
要解决这个问题,你可以按照以下步骤重新导出和导入镜像,以便保留镜像的元数据:
-  导出镜像: 使用 docker save命令将镜像导出为 tar 归档文件。例如:docker save -o my_image.tar my_image:tag这将创建名为 my_image.tar的 tar 归档文件,其中包含了my_image:tag镜像的元数据和文件系统层。
-  导入镜像: 使用 docker load命令将之前导出的 tar 归档文件导入为 Docker 镜像。例如:docker load -i my_image.tar这将重新创建镜像并保留其元数据,包括 REPOSITORY和TAG。
请注意,docker save 和 docker load 命令用于在不同的 Docker 主机之间传输镜像,或者在本地备份和恢复镜像。如果你只是在同一台主机上复制镜像,也可以使用 docker tag 命令为现有镜像添加新的标签,以便在同一主机上复制镜像。例如:
docker tag old_image:old_tag new_image:new_tag
然后你可以使用 new_image:new_tag 这个新标签来运行容器。