Docker跨架构拉取镜像

这段时间在做一个手上的产品往Arm版本的Linux上部署的测试,相信已经有不少人参与过轰轰烈烈的软硬件国产化自研运动中,背景这里就不多说了,本文这里主要介绍的是一个在环境部署过程中遇到的一些问题。

那个产品本身依赖着三四个外部中间件的,之前一直是用的docker部署,虽然我平时用的都是x86的环境,但查询过这些软件都支持arm64的版本。最初我以为用docker可以直接一键搞定的。谁知给我用的那个华为鲲鹏服务器的网络环境奇慢无比,并且慢就算了,还不稳定,下载下载着就断了。试了一下午实在无法搞定。

我试了一下,这个机器的上传速度还凑活,便想能不能在外部下载镜像后再上传上去。但我手头上都是x86的环境,以前的docker compose文件下载下来的是x86架构的,不能直接使用。我便想是否有类似交叉编译的那样,能跨架构下载镜像的参数可以配置,查询了一下,果然还有,基本操作是如下几步。

  1. 先修改docker服务加参数–experimental=true (默认开启了, 不用执行这一步, 不行的话通过docker version查看)
  2. 拉取的时候添加--platform arm64
  3. 拉完后用docker inspect确认一下这个镜像是不是你要的架构的.

示例:

docker pull --platform arm64 redis
docker inspect redis

这个platform参数在docker-compose文件中也是可以用,批量配置还是比较方便的。

 

导入导出:

拉完了后,用save导出,import导出。

docker save -o images.tar redis
docker load -i images.tar

这个命令也是是可以支持一次性导入,导出多个镜像文件的,非常方便。

 

参考文章:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章