适用于:

  • Ubuntu 20.04 / 22.04 / 24.04(ARM64)
  • 各类开发板(NanoPi / RK / 全志 / Jetson 等)

1. 卸载旧版本 Docker(如有)

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do 
    sudo apt-get remove -y $pkg
done

2. 安装系统依赖

sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg

3. 添加 Docker 官方 GPG Key(阿里云镜像)

创建 key 目录:

sudo install -m 0755 -d /etc/apt/keyrings

下载 GPG key:

sudo curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker_aliyun.asc
sudo chmod a+r /etc/apt/keyrings/docker_aliyun.asc

4. 添加 Docker APT 软件源(Ubuntu + 阿里云)

⚠️ 这里是和 Debian / 树莓派最大区别

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker_aliyun.asc] \
http://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker_aliyun.list > /dev/null

sudo apt-get update

5. 安装 Docker Engine

sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

6. 配置用户组(可选但推荐)

sudo usermod -aG docker $USER
sudo reboot

7. 验证 Docker 是否安装成功

docker version
docker info

如果能正常输出信息,说明安装成功。


8. 配置 Docker 镜像源 & 默认网络段


8.1 创建配置目录

sudo mkdir -p /etc/docker

8.2 写入 daemon.json

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.1panel.live",
    "https://hub.rat.dev"
  ],
  "default-address-pools": [
    {
      "base": "172.16.0.0/12",
      "size": 24
    }
  ]
}
EOF

8.3 重启 Docker

sudo systemctl daemon-reload
sudo systemctl restart docker

8.4 验证配置

docker info

重点检查:

  • Registry Mirrors
  • Default Address Pools

🔧 常见问题(ARM设备特别注意)

1. 内核不支持 Docker(嵌入式设备常见)

检查:

uname -a

需要支持:

  • cgroups
  • overlayfs
  • iptables

如果你之前遇到类似问题,要重点确认:

lsmod | grep overlay
iptables -L

2. 启动失败

查看日志:

journalctl -u docker -f

3. ARM 架构镜像问题

查看架构:

uname -m
  • aarch64 → ARM64 ✅
  • armv7l → 需要注意镜像兼容

4. 网络冲突

如果你在做:

  • 多容器(compose)
  • RTSP / WebRTC
  • 多节点通信

建议固定网段:

"default-address-pools": [
  {
    "base": "172.16.0.0/12",
    "size": 24
  }
]

避免冲突:

  • 192.168.x.x(局域网)
  • 172.17.x.x(Docker默认)

✅ 总结(和树莓派版本差异)

项目Raspberry Pi(Debian)Ubuntu ARM
源路径docker-ce/linux/debiandocker-ce/linux/ubuntu
GPG URLdebian/gpgubuntu/gpg
系统兼容Raspberry Pi OSUbuntu
其余步骤✅ 完全一致✅ 完全一致