临时切换到 root 用户执行 apt 命令(推荐)

进入容器时直接指定root用户,即可获得系统级权限执行安装操作:

# 1. 以root身份进入Jenkins容器(关键:替换jenkins为你的容器名/ID)
docker exec -it -u root jenkins /bin/bash

# 2. 先修复缺失的目录并赋予正确权限
mkdir -p /var/lib/apt/lists/partial
chmod 755 /var/lib/apt/lists/

# 3. 正常执行apt更新和安装
apt update && apt upgrade -y

# 4. 安装Docker客户端(接之前的步骤)
apt install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian bookworm stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
apt install -y docker-ce docker-ce-cli containerd.io

# 5. 验证Docker安装
docker --version

# 6. 退出root用户(可选)
exit
方案 2:在 Jenkins Pipeline 中用 root 执行 apt 命令(适配自动化构建)

如果需要在 Jenkins 流水线中自动执行,可在脚本中添加sudo或指定root用户执行:

groovy

stage('Install Docker in Jenkins Container') {
  steps {
    script {
      // 以root身份执行命令
      sh '''
        docker exec -u root jenkins bash -c "
          # 修复目录和权限
          mkdir -p /var/lib/apt/lists/partial && chmod 755 /var/lib/apt/lists/
          # 更新源并安装Docker
          apt update && apt install -y docker-ce docker-ce-cli containerd.io
        "
      '''
    }
  }
}
Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐