跳到主要内容

安装 Docker 到您的 Raspberry Pi

操作系统要求

要安装 Docker Engine,您需要以下 Raspberry Pi OS 版本之一:

  • Raspberry Pi OS Bookworm 12(稳定)
  • Raspberry Pi OS Bullseye 11(旧稳定版)

安装 Docker

1. 设置 Docker 的 apt 存贮库

提示

由于国内访问 download.docker.com 存在着被屏蔽或访问速度慢等问题,推荐使用 阿里云腾讯云 作为 Docker apt 源。尽量避免直接使用 Docker官方 的 Docker apt 源。

# 卸载旧版本(如果有):
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done

# 添加 Docker 官方 GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/raspbian/gpg -o /etc/apt/keyrings/docker_aliyun.asc
sudo chmod a+r /etc/apt/keyrings/docker_aliyun.asc

# 添加仓库到 Apt 源:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker_aliyun.asc] http://mirrors.aliyun.com/docker-ce/linux/raspbian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker_aliyun.list > /dev/null
sudo apt-get update

2. 安装 Docker 软件包

要安装最新版本,请运行:

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

3. 验证

通过运行镜像验证安装是否成功hello-world

sudo docker run hello-world

此命令下载测试映像并在容器中运行它。当容器运行时,它会打印一条确认消息并退出。

普通用户可操作的 Docker 组

推荐执行下面的指令以方便管理。否则每次运行docker指令还要加上sudo,很麻烦。

sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker

卸载 Docker 引擎

  1. 卸载 Docker Engine、CLI、containerd 和 Docker Compose 软件包:
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
  1. 删除镜像、容器、卷和配置文件:
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

国内加速镜像 pull 失败问题

注意

自 24.06 月初开始,docker 官方 registry 被封禁,国内的 Docker Hub 镜像加速器相继停止服务。如果您已经尝试各种办法但仍未找到可用的加速镜像源,那么可使用本站的源 将就一下

为防止本站流量耗尽,该镜像源限制为 linux系统 + arm/arm64 架构的终端可访问,可支持 树莓派 及 各种arm架构的派。M1-4架构的Mac也可以

创建或修改 /etc/docker/daemon.json 文件,并重启 docker 服务。

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://docker.pidoc.tech"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker