甲骨文免费 VPS 出现 Docker CE 架构不支持报错,通常是因为实例为 ARM64 架构而使用了仅适配 x86_64 的安装源或脚本。最推荐直接使用 Docker 官方自动检测架构的安装脚本,或在配置 apt 源时明确指定 arm64 架构。
先说结论:甲骨文免费 ARM 实例支持 Docker CE,但必须使用适配 aarch64 架构的安装方式,避免强制指定 amd64 源。
- 先确认:使用 uname -m 检查实例架构是 aarch64 还是 x86_64。
- 先处理:删除旧配置,使用官方脚本 curl -fsSL https://get.docker.com | sh 自动适配。
- 再验证:运行 docker run `--rm` hello-world 确认容器正常启动。
命令速用版
如果希望快速解决架构报错,可直接执行以下命令序列,适用于 Ubuntu 20.04/22.04 及 Oracle Linux 8/9。
# 1. 确认当前架构
uname -m
# 2. 卸载可能冲突的旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
# 3. 使用官方脚本自动安装(自动识别 ARM64)
curl -fsSL https://get.docker.com | sh
# 4. 启动服务
sudo systemctl enable `--now` docker为什么会这样
报错核心原因是 CPU 架构与软件包架构不匹配。甲骨文免费层提供 Ampere A1 计算实例,其 CPU 架构为 ARM64(aarch64),而部分旧教程或默认脚本可能指向 x86_64(amd64)仓库。
Docker CE 官方支持 ARM64 架构,但 Linux 包管理器(apt/yum)在安装时若未检测到正确的 arch 配置,或用户手动添加了错误的源地址,就会提示架构不支持或找不到包。此外,Ubuntu 默认源中的 docker.io 与 Docker 官方源的 docker-ce 存在冲突,混用也会导致依赖报错。
分步处理
按照以下步骤清理环境并重新安装,确保架构匹配。
步骤 1:检查系统架构
执行 uname -m。如果返回 aarch64,说明是 ARM 实例;如果返回 x86_64,则是 Intel/AMD 实例。甲骨文免费 ARM 实例必须按 aarch64 处理。
步骤 2:清理旧安装
避免旧配置文件干扰,执行以下命令清理可能存在的冲突包:
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get autoremove步骤 3:配置官方源或直接脚本安装
方法 A(推荐):使用官方便利脚本,该脚本会自动检测架构并添加正确的源。
curl -fsSL https://get.docker.com | sh方法 B(手动配置):如果无法使用脚本,需手动添加源时确保指定 arch。以 Ubuntu 为例:
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg `--print-architecture`) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update注意手动配置中 arch=$(dpkg `--print-architecture`) 会自动获取当前系统架构,避免硬编码 amd64。
步骤 4:安装 Docker CE
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin怎么验证是否生效
安装完成后,需验证 Docker 守护进程是否运行且架构识别正确。
检查服务状态
sudo systemctl status docker状态应显示 active (running)。
运行测试容器
sudo docker run `--rm` hello-world如果输出 "Hello from Docker!" 且无架构错误,说明安装成功。
检查信息
docker version
docker info在 docker info 输出中查看 Architecture 字段,ARM 实例应显示 aarch64。
常见坑
- docker.io 与 docker-ce 冲突:Ubuntu 默认源包含 docker.io,官方源包含 docker-ce。两者不要同时安装,建议卸载 docker.io 后安装 docker-ce。
- Oracle Linux 源配置:如果是 Oracle Linux 8/9,需使用 yum/dnf 而非 apt,且源地址为 https://download.docker.com/linux/centos(兼容)或官方提供的 oraclelinux 路径。
- 网络超时:国内访问 Docker 官方源可能超时,若下载失败,可配置国内镜像加速器,但需注意镜像源是否支持 ARM64 架构。
- 权限问题:运行 docker 命令需 sudo 或将用户加入 docker 组,否则报 permission denied。
常见问题
甲骨文 ARM 实例能稳定运行 Docker 吗?
可以稳定运行。Docker 官方已正式支持 Linux ARM64 架构,主流镜像均提供 multi-arch 支持。
安装脚本报错 curl: command not found 怎么办?
先安装 curl 工具。Ubuntu 执行 sudo apt-get update && sudo apt-get install curl -y,Oracle Linux 执行 sudo yum install curl -y。
为什么 docker run 拉取镜像慢或失败?
这是网络连通性问题,非架构问题。可配置 Docker daemon.json 添加 registry-mirrors,或检查 VPS outbound 网络策略。
参考来源
- Docker Official Documentation, Install Docker Engine, https://docs.docker.com/engine/install/
- Oracle Cloud Infrastructure Documentation, Compute Shapes, https://docs.oracle.com/en-us/iaas/Content/Compute/References/computeshapes.htm