离线系统中Docker无法识别本地镜像:应放置在哪个路径?
解决离线Docker镜像无法识别的问题
你直接把镜像文件丢到Hyper-V虚拟硬盘路径是没用的,Docker并不会自动扫描这个目录来加载镜像。要让离线系统识别这个镜像,得通过Docker的官方命令来导入,具体步骤如下:
第一步:确认联网机器导出的镜像格式正确
首先要保证你在联网机器上是用docker save命令导出的镜像包,而不是随便复制的文件。正确的导出命令应该是:docker save -o hello-world.tar hello-world:latest这个命令会把
hello-world:latest镜像打包成hello-world.tar文件,这才是Docker能识别的标准镜像包格式。第二步:传输镜像包到离线机器
把生成的hello-world.tar文件传到离线机器的任意路径都可以——你原来放的C:\Users\Public\Documents\Hyper-V\Virtual hard disks路径没问题,选个更方便访问的路径比如C:\temp也完全ok。第三步:在离线机器上加载镜像
打开CMD,用docker load命令加载这个镜像包,如果是放在你原来的路径,命令就是:docker load -i C:\Users\Public\Documents\Hyper-V\Virtual hard disks\hello-world.tar执行完这个命令后,Docker会解析镜像包并把它添加到本地的镜像仓库里。
第四步:运行镜像
现在再执行docker run hello-world,就能正常运行这个镜像了。
说穿了,Docker的本地镜像仓库是由它自己管理的,不会自动读取任意目录下的文件,必须通过docker load命令来显式导入镜像包,这样镜像才会被Docker识别到。
内容的提问来源于stack exchange,提问作者helenDeveloper
相关产品推荐
相关产品推荐

