使用镜像创建一个容器,该镜像必须与 Docker 宿主机系统架构一致,例如x86_64 架构的系统中只能使用x86_64的镜像创建容器。docker manifest特性可支持用户在不同系统架构的机器上分别运行不同的架构的镜像。这一点基本不需要用户做任何适配,非常的方便。
但是要做到这一点,需要docker cli支持manifest特性,这个特性默认是不开启的。
可通过修改$HOME/.docker/config.json文件,加入如下配置开启:
修改docker配置
vi /root/.docker/config.json
{
"auth" : {},
"experimental": "enabled"
}
开启实验特性
vi /etc/docker/daemon.json
{
"experimental": true
}
systemctl daemon-reload
systemctl restart docker
docker pull --platform=arm64 镜像
–platform:该参数是用于拉取指定平台的镜像,也是实验性功能,在上面步骤中开启后就会出现。通过该参数可以手动指定需要的CPU平台镜像,而不用自动去识别。
第二种方法
通过镜像的 sha256值拉取(有时候会失败),比如
拉镜像
docker pull nginx:stable-perl@sha256:a48175e7029f0ae21b8b4e2526d6c3dd7278a8479be0e666d729b6234108f4e1