Debian 12安装docker的正确方法
<p>正确的 Debian 12 安装方法:</p><p>## 1. 正确的 Debian 12 Docker 安装步骤</p>
<p>### 步骤1:清理错误的 Ubuntu 源<br>```bash<br>sudo rm -f /etc/apt/sources.list.d/docker.list<br>sudo apt update<br>```</p>
<p>### 步骤2:安装依赖<br>```bash<br>sudo apt update<br>sudo apt install -y \<br> ca-certificates \<br> curl \<br> gnupg \<br> lsb-release<br>```</p>
<p>### 步骤3:添加 Docker 官方 GPG 密钥(Debian 版本)<br>```bash<br>sudo mkdir -p /etc/apt/keyrings<br>curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg<br>```</p>
<p>### 步骤4:添加正确的 Debian Docker 源<br>```bash<br>echo \<br>"deb https://download.docker.com/linux/debian \<br>$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null<br>```</p>
<p>### 步骤5:更新并安装<br>```bash<br>sudo apt update<br>sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin<br>```</p>
<p>## 2. 一键安装脚本(Debian 12 专用)</p>
<p>创建 `install_docker_debian.sh`:</p>
<p>```bash<br>#!/bin/bash<br>echo "=== Debian 12 Docker 一键安装脚本 ==="</p>
<p># 显示系统信息<br>echo "1. 系统信息:"<br>lsb_release -a<br>echo "架构: $(dpkg --print-architecture)"</p>
<p># 清理可能存在的错误配置<br>echo "2. 清理旧配置..."<br>sudo rm -f /etc/apt/sources.list.d/docker.list 2>/dev/null</p>
<p># 卸载旧版本<br>echo "3. 卸载旧版本 Docker..."<br>sudo apt-get remove -y docker docker-engine docker.io containerd runc 2>/dev/null</p>
<p># 安装依赖<br>echo "4. 安装依赖包..."<br>sudo apt update<br>sudo apt install -y \<br> ca-certificates \<br> curl \<br> gnupg \<br> lsb-release</p>
<p># 创建密钥目录<br>sudo mkdir -p /etc/apt/keyrings</p>
<p># 添加 Docker GPG 密钥 (Debian)<br>echo "5. 添加 Docker GPG 密钥 (Debian)..."<br>curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg</p>
<p># 添加正确的 Docker 软件源 (Debian)<br>echo "6. 添加 Docker 软件源 (Debian)..."<br>echo \<br>"deb https://download.docker.com/linux/debian \<br>$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null</p>
<p># 设置正确的权限<br>sudo chmod a+r /etc/apt/keyrings/docker.gpg</p>
<p># 更新软件包索引<br>echo "7. 更新软件包索引..."<br>sudo apt update</p>
<p># 安装 Docker<br>echo "8. 安装 Docker..."<br>sudo apt install -y \<br> docker-ce \<br> docker-ce-cli \<br> containerd.io \<br> docker-buildx-plugin \<br> docker-compose-plugin</p>
<p># 启动 Docker 服务<br>echo "9. 启动 Docker 服务..."<br>sudo systemctl enable docker<br>sudo systemctl start docker</p>
<p># 验证安装<br>echo "10. 验证安装..."<br>sudo docker --version<br>sudo docker compose version</p>
<p># 测试运行<br>echo "11. 测试 Docker..."<br>sudo docker run --rm hello-world</p>
<p>echo "=== Docker 安装完成 ==="<br>```</p>
<p>运行:<br>```bash<br>chmod +x install_docker_debian.sh<br>./install_docker_debian.sh<br>```</p>
<p>## 3. 替代方案:使用 Debian 自带的 Docker</p>
<p>如果官方源还有问题,使用 Debian 12 自带的版本:</p>
<p>```bash<br># 安装 Debian 自带的 Docker<br>sudo apt update<br>sudo apt install -y docker.io docker-compose</p>
<p># 启动服务<br>sudo systemctl enable docker<br>sudo systemctl start docker</p>
<p># 验证<br>docker --version<br>docker-compose --version<br>```</p>
<p>## 4. 如果上述方法都失败,使用这个终极方案</p>
<p>```bash<br>#!/bin/bash<br># 终极 Docker 安装方案</p>
<p>echo "=== 终极 Docker 安装方案 ==="</p>
<p># 方法1:尝试官方 Docker CE<br>install_docker_ce() {<br> echo "尝试方法1: Docker CE 官方源..."<br> sudo apt remove -y docker docker-engine docker.io containerd runc 2>/dev/null<br> sudo apt update<br> sudo apt install -y ca-certificates curl gnupg lsb-release<br> <br> # 添加 Docker 源<br> sudo mkdir -p /etc/apt/keyrings<br> curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg<br> echo "deb https://download.docker.com/linux/debian bookworm stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null<br> <br> sudo apt update<br> if sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin; then<br> echo "✅ Docker CE 安装成功"<br> return 0<br> fi<br> echo "❌ Docker CE 安装失败"<br> return 1<br>}</p>
<p># 方法2:使用 Debian 自带版本<br>install_docker_io() {<br> echo "尝试方法2: Debian 自带 Docker..."<br> if sudo apt install -y docker.io docker-compose; then<br> echo "✅ Docker.io 安装成功"<br> return 0<br> fi<br> echo "❌ Docker.io 安装失败"<br> return 1<br>}</p>
<p># 方法3:使用脚本安装<br>install_docker_script() {<br> echo "尝试方法3: 官方安装脚本..."<br> curl -fsSL https://get.docker.com -o get-docker.sh<br> sudo sh get-docker.sh<br> if docker --version &>/dev/null; then<br> echo "✅ 脚本安装成功"<br> return 0<br> fi<br> echo "❌ 脚本安装失败"<br> return 1<br>}</p>
<p># 执行安装<br>if install_docker_ce; then<br> echo "使用 Docker CE 版本"<br>elif install_docker_io; then<br> echo "使用 Docker.io 版本"<br>elif install_docker_script; then<br> echo "使用脚本安装版本"<br>else<br> echo "❌ 所有安装方法都失败了"<br> exit 1<br>fi</p>
<p># 启动服务<br>sudo systemctl enable docker<br>sudo systemctl start docker</p>
<p># 添加用户到 docker 组<br>sudo usermod -aG docker $USER<br>echo "请重新登录或执行 'newgrp docker' 来应用用户组更改"</p>
<p># 验证<br>echo "安装验证:"<br>docker --version<br>docker compose version<br>```</p>
<p>运行终极方案:<br>```bash<br>chmod +x docker_ultimate.sh<br>./docker_ultimate.sh<br>```</p>
<p>## 5. 安装后的配置</p>
<p>```bash<br># 添加用户到 docker 组(避免 sudo)<br>sudo usermod -aG docker $USER<br># 重新登录或执行:<br>newgrp docker</p>
<p># 配置镜像加速(国内用户)<br>sudo mkdir -p /etc/docker<br>sudo tee /etc/docker/daemon.json <<-'EOF'<br>{<br>"registry-mirrors": [<br> "https://docker.mirrors.ustc.edu.cn",<br> "https://hub-mirror.c.163.com",<br> "https://registry.docker-cn.com"<br>]<br>}<br>EOF</p>
<p>sudo systemctl daemon-reload<br>sudo systemctl restart docker</p>
<p># 测试<br>docker run --rm hello-world<br>```</p>
<p>## 6. 验证安装成功</p>
<p>```bash<br># 检查版本<br>docker --version<br>docker compose version</p>
<p># 检查服务状态<br>systemctl status docker</p>
<p># 运行测试容器<br>docker run --rm hello-world</p>
<p># 检查信息<br>docker info<br>```</p>
<p>**关键点**:你的系统是 Debian 12 (bookworm),不是 Ubuntu,所以必须使用 Debian 的 Docker 源。推荐先运行一键安装脚本,应该就能解决问题!</p><br><br>
来源:https://www.cnblogs.com/zhg1016/p/19143786
頁:
[1]