当使用 docker import 命令导入镜像时,REPOSITORYTAG 字段可能会为 null,因为 docker import 命令不会保留镜像的元数据,例如镜像名称和标签。这是因为 docker import 命令主要用于将本地文件系统中的文件或目录导入为 Docker 镜像,而不涉及 Docker 镜像仓库中的镜像。

如果你想要保留镜像的元数据(如 REPOSITORYTAG),应该使用 docker load 命令来加载保存了镜像元数据的 tar 归档文件。

要解决这个问题,你可以按照以下步骤重新导出和导入镜像,以便保留镜像的元数据:

  1. 导出镜像: 使用 docker save 命令将镜像导出为 tar 归档文件。例如:

    docker save -o my_image.tar my_image:tag
    

    这将创建名为 my_image.tar 的 tar 归档文件,其中包含了 my_image:tag 镜像的元数据和文件系统层。

  2. 导入镜像: 使用 docker load 命令将之前导出的 tar 归档文件导入为 Docker 镜像。例如:

    docker load -i my_image.tar
    

    这将重新创建镜像并保留其元数据,包括 REPOSITORYTAG

请注意,docker savedocker load 命令用于在不同的 Docker 主机之间传输镜像,或者在本地备份和恢复镜像。如果你只是在同一台主机上复制镜像,也可以使用 docker tag 命令为现有镜像添加新的标签,以便在同一主机上复制镜像。例如:

docker tag old_image:old_tag new_image:new_tag

然后你可以使用 new_image:new_tag 这个新标签来运行容器。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐