出于种种原因,可能是因为docker hub被墙、可能是因为机器受网络环境限制,我们会遇到docker无法拉取镜像的问题,有时候代理并不可选,那么代理之外还有什么办法可以解决这个问题呢?如果你有另一台可以访问docker镜像且安装了docker的机器,你可以下载并导出镜像,传输到目标设备并手动导入此镜像到docker中。
具体步骤如下,这里将以frpc为例:
Step1 拉取镜像
首先,请确认你的目标设备与下载设备是否是基于同样的cpu架构,如果相同,直接使用docker pull命令拉取对应的镜像即可,例如 docker pull snowdreamtech/frpc
;如果不同,你需要指定镜像的架构为目标机型的架构,例如docker pull --platform arm64 snowdreamtech/frpc
。你可以通过docker inspect snowdreamtech/frpc | grep Architecture
来查看拉取之后镜像的架构。
Step2 导出镜像
在你希望将镜像导出的路径打开命令行工具,执行以下命令,-o指令用于指定导出的包的名称,后缀为.tar
:docker save -o frpc.tar snowdreamtech/frpc
Step3 传输并导入镜像
将文件传输到目标机器,cd到对应目录,运行以下命令导入该文件
docker load -i frpc.tar
此时,可以看到docker会显示和从网络拉取镜像一样的进度条,随后正常部署镜像即可。