核心是匹配硬件架构、避开残留干扰、选对安装方式:先执行uname -m确认aarch64(即arm64)、armv7l或x86_64;有网新系统用apt在线安装并配置arm64源;离线或国产系统用aarch64二进制包+自定义systemd服务;最后用docker version、info和hello-world三重验证。
在 arm 架构中正确安装 docker engine,核心是匹配硬件架构、避开残留干扰、选对安装方式。不能直接套用 x86 教程,否则大概率卡在 command not found 或 permission denied。
确认设备真实架构,别被名字带偏
先执行这行命令:
uname -m
结果只有三种常见可能:
- aarch64 → 就是 arm64,对应 64 位 ARM,绝大多数树莓派 4/5、飞腾、鲲鹏、Jetson 都属于这一类
-
armv7l → 是 32 位 ARM,比如老款树莓派 3B,得用
arm/v7包,不是 arm64 - x86_64 → 说明你根本不在 ARM 设备上,别继续往下试了
注意:aarch64 和 arm64 是一回事,只是命名习惯不同,Docker 官方下载页写 arm64,Linux 内核里叫 aarch64。
优先用包管理器在线安装(推荐 Ubuntu/Debian)
适合有网络、系统较新(如 Ubuntu 20.04+、Debian 11+)的场景,省心且自动处理依赖:
- 先清理旧 Docker:
sudo apt remove docker docker-engine docker.io containerd runc -y - 装必要工具:
sudo apt update && sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release - 加官方密钥和源(注意
arch=arm64):curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpgecho "deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null - 安装启动:
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.iosudo systemctl start docker && sudo systemctl enable docker
离线或国产系统(如麒麟、BClinux)用二进制包安装
适合没网、内核定制深、或 yum/apt 源不可用的环境,全程手动但可控性强:
- 去镜像站下对应 aarch64 的 tar 包,例如:
http://mirrors.163.com/docker-ce/linux/static/stable/aarch64/docker-27.3.1.tgz - 解压并复制到系统路径:
tar xvfz docker-27.3.1.tgz && sudo cp -p docker/* /usr/bin/ - 写好
/etc/systemd/system/docker.service,关键项包括:
–ExecStart=/usr/bin/dockerd
–Type=notify
–Delegate=yes
–Restart=on-failure - 启用服务:
sudo chmod +x /etc/systemd/system/docker.servicesudo systemctl daemon-reloadsudo systemctl start docker
如果启动报 Permission denied,检查 SELinux 是否启用:getenforce,是的话临时关掉:sudo setenforce 0。
验证是否真装对了
光看 docker --version 不够,要跑通实际容器:
-
sudo docker version—— 看 client 和 server 都显示版本,且 Server 中Arch是arm64 -
sudo docker info | grep -i arch—— 输出应含Architecture: aarch64 -
sudo docker run --rm hello-world—— 能拉取并运行官方 arm64 镜像才算真正可用
如果 hello-world 报 no matching manifest,说明镜像平台不匹配,回去检查第一步的架构判断或安装包来源。


















