docker pull arm64 images on X86

原创
2021/08/24 22:54
阅读数 2.1K

因为需要arm64的kubernetes镜像,但是需要通过x86的服务器下载。解决步骤如下:

1、启用多架构镜像支持

修改docker服务加参数–experimental=true

nano /etc/docker/daemon.json

添加如下内容:

{
  "experimental":true
}

然后重启docker。

sudo systemctl restart docker

查看是否experimental已经生效。

docker info

#注意下面的一行
#Experimental: true

2、拉取arm64镜像

拉取镜像的时候用指定参数 --platform arm64,如:

docker pull --platform arm64 k8s.gcr.io/pause:3.5

然后用docker inspect查看镜像是否符合需要的架构。

docker inspect k8s.gcr.io/pause:3.5

查看里面的一行:

"Architecture": "arm64",
"Os": "linux",
"Size": 483864,
"VirtualSize": 483864,

3、问题解决

通过上面的方式可以在x86的机器上拉取arm64的镜像,但有两个问题:

  • 不能在x86机器上运行该镜像。
  • 同一个tag会覆盖之前的镜像。也就是说,会把x86的镜像覆盖掉。

因此,该方法只能用于临时中转镜像,如果要运行还需要恢复x86下的镜像。

  • 解决办法:
    • 拉取镜像后,立即重新tag。
    • 重新拉取x86的镜像。
展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部