docker 拉取指定平台镜像
在节点中执行docker pull
时,缺省拉取当前平台的镜像,有时候我们需要拉取非本平台的镜像时,可以进行如下操作:
1、往/etc/docker/daemon.json
文件中添加以下experimental
配置参数:
# vim /etc/docker/daemon.json
{
"experimental": true,
"log-opts": {
"max-size": "100m",
"max-file": "3"
},
"storage-driver": "overlay2",
"storage-opts": ["overlay2.override_kernel_check=true"]
}
2、重启docker 进程
# systemctl restart docker
3、这样我们就可以愉快地拉取我们想要平台镜像,以busybox
拉取arm64平台
为例:
# export arch=arm64
# docker pull --platform $arch busybox:1.35
4、验证
# docker inspect busybox:1.35 | grep Architecture
"Architecture": "arm64",
举个粟子: 在x86平台上拉取arm64平台的k8s镜像
获取离线镜像列表
# kubeadm config images list --kubernetes-version=v1.20.15
k8s.gcr.io/kube-apiserver:v1.20.15
k8s.gcr.io/kube-controller-manager:v1.20.15
k8s.gcr.io/kube-scheduler:v1.20.15
k8s.gcr.io/kube-proxy:v1.20.15
k8s.gcr.io/pause:3.2
k8s.gcr.io/etcd:3.4.3-0
k8s.gcr.io/coredns:1.6.7
在x86机器上拉取
export arch=arm64
docker pull --platform $arch k8s.gcr.io/kube-apiserver:v1.20.15
docker pull --platform $arch k8s.gcr.io/kube-controller-manager:v1.20.15
docker pull --platform $arch k8s.gcr.io/kube-scheduler:v1.20.15
docker pull --platform $arch k8s.gcr.io/kube-proxy:v1.20.15
docker pull --platform $arch k8s.gcr.io/pause:3.2
docker pull --platform $arch k8s.gcr.io/etcd:3.4.3-0
docker pull --platform $arch k8s.gcr.io/coredns:1.6.7