教程

Claude Code Docker 配置指南:容器环境部署与沙箱隔离实战

Claude Code 在 Docker 容器环境中的完整配置指南:Dockerfile 构建、docker-compose 配置、环境变量管理、权限隔离、CI/CD 集成、开发/生产环境分离,以及 DevContainer 开发环境配置。

2026/3/143分钟 阅读ClaudeEagle

在 Docker 容器里运行 Claude Code 有明显优势:环境一致、权限隔离、CI/CD 友好。本文给出完整的配置方案,从本地开发到生产 CI/CD 全覆盖。

为什么要在容器里运行

  • 环境一致:团队成员、CI/CD 用同一个镜像,不再有 "我这里是好的" 问题
  • 权限隔离:Claude Code 的 Bash 工具只能访问容器内,不影响宿主机
  • 依赖可控:把项目需要的 Node.js、Python、Go 版本打包进镜像
  • CI 友好:直接在 GitHub Actions / GitLab CI 里使用

基础 Dockerfile

dockerfile
FROM node:22-slim

# 安装 Claude Code
RUN npm install -g @anthropic-ai/claude-code

# 安装常用工具
RUN apt-get update && apt-get install -y \
    git curl python3 python3-pip \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /workspace

# 非 root 用户(安全最佳实践)
RUN useradd -m -u 1000 developer
USER developer

CMD ["claude"]

完整开发镜像(含 Python 项目支持)

dockerfile
FROM node:22-slim

ARG PYTHON_VERSION=3.11

RUN apt-get update && apt-get install -y \
    git curl wget jq \
    python3 python3-pip python3-venv \
    build-essential \
    && rm -rf /var/lib/apt/lists/*

RUN npm install -g @anthropic-ai/claude-code

WORKDIR /workspace

RUN useradd -m -u 1000 developer && \
    chown developer:developer /workspace
USER developer

# Claude 配置目录
RUN mkdir -p /home/developer/.claude

VOLUME ["/workspace", "/home/developer/.claude"]
CMD ["bash"]

docker-compose 开发环境

yaml
# docker-compose.yml
version: '3.8'
services:
  claude-dev:
    build: .
    environment:
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
    volumes:
      - .:/workspace          # 挂载项目代码
      - claude-config:/home/developer/.claude  # 持久化配置
    stdin_open: true
    tty: true
    working_dir: /workspace

volumes:
  claude-config:
bash
# 启动开发环境
docker-compose run --rm claude-dev claude

环境变量安全管理

bash
# 方法 1:.env 文件(不提交到 git)
echo 'ANTHROPIC_API_KEY=sk-ant-xxx' > .env
echo '.env' >> .gitignore
docker-compose --env-file .env run --rm claude-dev claude

# 方法 2:Docker secrets(生产环境推荐)
echo 'sk-ant-xxx' | docker secret create anthropic_key -
json
// .claude/settings.json(在容器内)
{
  "permissions": {
    "allow": ["Bash(npm *)", "Bash(python *)", "Bash(git *)"],
    "deny": ["Bash(curl *)", "Bash(wget *)"]
  }
}

DevContainer 配置(VS Code Remote)

json
// .devcontainer/devcontainer.json
{
  "name": "Claude Code Dev",
  "dockerFile": "Dockerfile",
  "containerEnv": {
    "ANTHROPIC_API_KEY": "${localEnv:ANTHROPIC_API_KEY}"
  },
  "mounts": [
    "source=${localWorkspaceFolder},target=/workspace,type=bind"
  ],
  "extensions": [
    "anthropic.claude-code"
  ],
  "postCreateCommand": "npm install"
}

CI/CD 集成(GitHub Actions)

yaml
# .github/workflows/claude-task.yml
jobs:
  claude-fix:
    runs-on: ubuntu-latest
    container:
      image: node:22-slim
    steps:
      - uses: actions/checkout@v4
      - run: npm install -g @anthropic-ai/claude-code
      - run: |
          claude -p "Fix all TypeScript type errors" --allowedTools Bash,Edit,Read
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
      - name: Commit fixes
        run: |
          git config user.name 'Claude Bot'
          git config user.email 'claude@ci'
          git add -A
          git diff --staged --quiet || git commit -m 'fix: AI auto-fix TypeScript errors'

常见问题

权限错误:容器里用非 root 用户,确保工作目录有写入权限。

API Key 未生效:检查 docker-compose 是否正确传入环境变量:docker-compose run -e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY ...

Claude 找不到命令:确保 npm 全局 bin 在 PATH 里:export PATH=$(npm bin -g):$PATH

容器内 git 权限问题

bash
git config --global --add safe.directory /workspace

来源:Claude Code DevContainer - Anthropic 官方文档

相关文章推荐

教程Claude Relay Service Docker 部署完整教程:一键搭建 Claude Code 中转服务CRS(Claude Relay Service)Docker 部署完整指南:服务器选择建议(避开阿里云/腾讯云海外)、Docker Compose 一键部署步骤、环境变量配置(JWT_SECRET/ENCRYPTION_KEY)、管理员密码获取、Claude OAuth 账户添加、API Key 创建,以及 Nginx 反向代理和 HTTPS 配置。2026/3/16教程Claude Code GitHub Actions 集成指南:让 AI 自动化你的 CI/CD 流水线Claude Code GitHub Actions 让 AI 融入 GitHub 工作流,支持通过 @claude 提及触发代码审查、自动创建 PR 和修复 Bug。本文涵盖快速安装、手动配置、Beta 到 v1.0 升级指南、实用工作流示例(PR 审查、Issue 自动修复)以及 AWS Bedrock/Google Vertex AI 集成方案。2026/2/27教程Claude Code MCP 完整使用指南:安装配置主流 MCP 服务器扩展 AI 能力Claude Code MCP(Model Context Protocol)完整使用指南:MCP 是什么(AI 工具扩展标准)、claude mcp 命令管理服务器(add/remove/list)、主流 MCP 服务器安装配置(文件系统/GitHub/PostgreSQL/Brave Search/Slack)、本地 stdio 与远程 SSE 两种连接方式、MCP 服务器安全配置、在 CLAUDE.md 中声明 MCP 工具使用规范,以及自定义 MCP 服务器的快速开发入门。2026/3/18教程Claude Code 输出格式控制完全指南:JSON、流式、结构化输出使用方法Claude Code 和 Claude API 输出格式完整控制指南:--output-format 参数(text/json/stream-json)、非交互模式(-p)的输出控制、结构化 JSON 输出(--json-schema 字段约束)、流式输出(Server-Sent Events)的处理方式、include-partial-messages 流式渐进显示、以及 CI/CD 管道中解析 JSON 输出的实用技巧。2026/3/18教程Claude Code 项目初始化最佳实践:新项目 5 分钟搭建完美 AI 编程环境Claude Code 新项目最佳初始化流程:CLAUDE.md 标准模板(项目背景/技术栈/代码规范/禁止操作)、.claudeignore 初始配置、.claude/commands/ 常用命令预置、settings.json 权限与模型设置、--init 命令的自动化初始化、项目级 vs 全局配置的优先级说明,以及不同类型项目(Web前端/后端API/全栈/开源库)的专项初始化模板。2026/3/18教程Claude Code 权限管理完全指南:精确控制 AI 能执行哪些操作Claude Code 权限系统完整解析:四种权限模式(default/acceptEdits/bypassPermissions/plan)、--allowedTools 和 --disallowedTools 精确工具控制、Bash 命令白名单语法(通配符匹配)、settings.json 持久化权限配置、CLAUDE.md 中的权限规则声明、CI/CD 自动化场景的权限配置、以及如何在效率和安全之间找到平衡点。2026/3/18