dockerhub提供的镜像部分支持arm64架构
arm架构服务器拉取docker镜像,默认是arm架构
# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
52f9ef134af7: Pull complete
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
查看docker镜像的架构
$ docker inspect centos | grep -i 'architecture'
"Architecture": "arm64",
x86平台拉取arm平台的docker镜像
对docker版本有限制
docker运行其他平台容器,需要使用--platform参数指定容器
docker19.03.9及以上版本才支持--platform参数
查看是否开启experimental功能
--platform 参数需要experimental为true,通过下面的命令可以验证是否开启
docker info | grep -i 'experimental'
开启experimental功能
修改daemon.json文件,增加下面的参数
"experimental": true
修改完成后,重启docker来验证
systemctl daemon reload
systemctl restart docker
docker info | grep -i 'experimental'
拉取arm平台的镜像
docker pull --platform arm64 centos
查看镜像使用的平台
$ docker inspect centos | grep -i 'architecture'
"Architecture": "arm64",
如果不加 --platform参数,默认拉取自己当前cpu平台的镜像
如果本地有相同tag的镜像,只是平台不同的情况下,需要注意区分tag,不然直接docker pull就会覆盖掉之前的镜像,之前的镜像tag会变为<node>