无法拉取 Docker 镜像的另一种解决方案

目前我拉取不了 docker 镜像,不管是 docker hub 的,还是 GitHub 的 ghcr.io 的。

我的解决方案,使用境外的 VPS 拉取镜像,然后通过 docker save 保存为 tar 归档包。接着把这个 tar 下载到本地,再使用 docker load 来加载。

我这里拉取的镜像是 memos

docker pull ghcr.io/usememos/memos:latest

目前最新的版本是 0.15.2,所以拉取完成之后,我使用这条命令

docker save -o memos-15.2.tar ghcr.io/usememos/memos:latest

此时我需要把文件从服务器下载到本地,可以使用

python3 -m http.server

之类的来开启一个 http 服务

不过此时我是使用 root 身份,导致文件没法下载,所以我还得更改一下文件的权限。

chmod 777 memos-15.2.tar

本地我是需要把 docker 镜像放到 nas 里,所以我可以 ssh 连接到 nas,然后使用 wget 来下载。

之后使用 load 命令

# docker load<memos-15.2.tar 
09180e184944: Loading layer [==================================================>] 2.56kB/2.56kB
d6149c35a41c: Loading layer [==================================================>] 1.989MB/1.989MB
41163094a155: Loading layer [==================================================>] 59.53MB/59.53MB
628f23364ad0: Loading layer [==================================================>] 2.56kB/2.56kB
The image ghcr.io/usememos/memos:latest already exists, renaming the old one with ID sha256:f930acc56434c179480c15382a8d2ef1651b44bc7f299e1b0bdff6d0f8d1c7eb to empty string
Loaded image: ghcr.io/usememos/memos:latest

就成功把镜像拉取到本地了,唉。