Контейнер разработки, или dev container, позволяет вам определить идентичную, изолированную среду, которую каждый инженер в вашей команде может запустить. С установленным Claude Code в этом контейнере команды, которые запускает Claude, выполняются внутри него, а не на хост-машине, при этом редактирование файлов вашего проекта отображается в локальном репозитории по мере работы. На этой странице рассматривается установка Claude Code в контейнер разработки и следующие темы конфигурации. Каждая тема является самостоятельной, поэтому переходите к тем, которые соответствуют тому, что вам нужно настроить:Documentation Index
Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
- Сохранение аутентификации и параметров при перестроении
- Применение политики организации
- Ограничение исходящего сетевого трафика
- Запуск без запросов разрешений
Как контейнеры разработки работают с вашим редактором
Как контейнеры разработки работают с вашим редактором
claude в интегрированном терминале; оба работают внутри контейнера и используют одну и ту же конфигурацию ~/.claude.Добавление Claude Code в контейнер разработки
Claude Code устанавливается в любой контейнер разработки через Claude Code Dev Container Feature. Параметры работают с любым инструментом, поддерживающим спецификацию Dev Containers, таким как VS Code, GitHub Codespaces или JetBrains IDEs. Шаги ниже используют VS Code в качестве примера. Когда вы открываете контейнер в VS Code или Codespaces, функция также добавляет расширение Claude Code VS Code; другие редакторы игнорируют эту часть.Создание или обновление devcontainer.json
Сохраните следующее как Замените строку
.devcontainer/devcontainer.json в вашем репозитории или добавьте блок features в ваш существующий файл.Тег версии в конце, такой как :1.0, закрепляет скрипт установки функции, а не выпуск Claude Code. Функция устанавливает последнюю версию Claude Code, и Claude Code автоматически обновляется внутри контейнера по умолчанию.Чтобы закрепить версию CLI или отключить автоматическое обновление, см. Применение политики организации..devcontainer/devcontainer.json
image на базовый образ вашего проекта или удалите ее, если ваш существующий файл использует Dockerfile.Перестроение контейнера
Откройте палитру команд VS Code с помощью
Cmd+Shift+P на Mac или Ctrl+Shift+P на Windows и Linux и запустите Dev Containers: Rebuild Container.Для других инструментов следуйте действию перестроения этого инструмента: см. перестроение в GitHub Codespaces, Dev Containers CLI или документацию контейнеров разработки вашей IDE.- Anthropic: вход через браузер с вашей учетной записью Claude или Anthropic Console
- Amazon Bedrock, Google Vertex AI или Microsoft Foundry: Claude Code использует учетные данные вашего облачного поставщика без подсказки браузера
containerEnv, секрет Codespaces или удостоверение рабочей нагрузки вашего облака, а не монтируйте файлы учетных данных с хоста. См. Amazon Bedrock, Google Vertex AI или Microsoft Foundry для цепочки учетных данных, которую читает Claude Code.
См. Выбор поставщика API, чтобы решить, какой путь подходит вашей организации.
Если вход через браузер завершен, но обратный вызов никогда не достигает контейнер, скопируйте код, показанный в браузере, и вставьте его в подсказку
Paste code here if prompted в терминале. Это может произойти, когда переадресация портов редактора не маршрутизирует обратный вызов localhost.Сохранение аутентификации и параметров при перестроении
По умолчанию домашний каталог контейнера отбрасывается при перестроении, поэтому инженеры должны снова входить каждый раз. Claude Code хранит свой токен аутентификации, параметры пользователя и историю сеанса в~/.claude. Смонтируйте именованный том в этом пути, чтобы сохранить это состояние при перестроении.
Следующий пример монтирует том в домашний каталог пользователя node:
devcontainer.json
/home/node на домашний каталог remoteUser вашего контейнера. Если вы монтируете том в другое место, чем ~/.claude, установите CLAUDE_CONFIG_DIR на путь монтирования, чтобы Claude Code читал и писал там.
Чтобы изолировать состояние для каждого проекта, а не делиться одним томом во всех репозиториях, включите переменную ${devcontainerId} в имя источника. Справочная конфигурация использует source=claude-code-config-${devcontainerId} для этой цели.
В GitHub Codespaces ~/.claude сохраняется при остановке и запуске codespace, но все еще очищается при перестроении контейнера, поэтому монтирование тома выше применяется и там. Чтобы перенести аутентификацию между codespaces, сохраните ANTHROPIC_API_KEY или CLAUDE_CODE_OAUTH_TOKEN из claude setup-token как секрет Codespaces; Codespaces автоматически делает секреты доступными как переменные окружения внутри контейнера.
Применение политики организации
Контейнер разработки — это удобное место для применения политики организации, потому что один и тот же образ и конфигурация работают на машине каждого инженера. Claude Code читает/etc/claude-code/managed-settings.json на Linux и применяет его с наивысшим приоритетом в иерархии параметров, поэтому значения там переопределяют все, что инженер устанавливает в ~/.claude или в каталоге .claude/ проекта. Скопируйте файл на место из вашего Dockerfile:
Dockerfile
containerEnv в вашем devcontainer.json. Следующий пример отказывается от телеметрии и отчетов об ошибках и предотвращает автоматическое обновление Claude Code после установки:
devcontainer.json
npm install -g @anthropic-ai/claude-code@X.Y.Z вместо использования функции и установите DISABLE_AUTOUPDATER, как показано выше.
Для полного списка элементов управления политикой, включая правила разрешений, ограничения инструментов и списки разрешений серверов MCP, см. Настройка Claude Code для вашей организации.
Чтобы сделать серверы MCP доступными внутри контейнера, определите их в области проекта в файле .mcp.json в корне репозитория, чтобы они были зарегистрированы вместе с конфигурацией контейнера разработки. Установите любые двоичные файлы, от которых зависят локальные серверы stdio, в вашем Dockerfile и добавьте домены удаленных серверов в ваш список разрешений сети.
Ограничение исходящего сетевого трафика
Вы можете ограничить исходящий трафик контейнера только доменами, которые нужны Claude Code. См. Требования к сетевому доступу для доменов вывода и аутентификации и Услуги телеметрии для дополнительных соединений телеметрии и отчетов об ошибках и способов их отключения. Контейнер-образец включает скриптinit-firewall.sh, который блокирует весь исходящий трафик, кроме доменов, которые нужны Claude Code и вашим инструментам разработки. Запуск брандмауэра внутри контейнера требует дополнительных разрешений, поэтому образец добавляет возможности NET_ADMIN и NET_RAW через runArgs. Скрипт брандмауэра и эти возможности не требуются для самого Claude Code: вы можете оставить их и вместо этого полагаться на ваши собственные элементы управления сетью.
Запуск без запросов разрешений
Поскольку контейнер запускает Claude Code как непривилегированный пользователь и ограничивает выполнение команд контейнером, вы можете передать--dangerously-skip-permissions для автоматического выполнения. CLI отклоняет этот флаг при запуске от root, поэтому подтвердите, что remoteUser установлен на непривилегированную учетную запись.
Пропуск запросов разрешений удаляет вашу возможность просмотреть вызовы инструментов перед их запуском. Claude все еще может изменять любой файл в привязанном рабочем пространстве, который отображается непосредственно на вашем хосте, и достичь всего, что позволяет политика сети контейнера. Объедините этот флаг с ограничениями исходящего сетевого трафика выше, чтобы ограничить то, что может достичь обойденный сеанс.
Если вы хотите меньше подсказок без отключения проверок безопасности, рассмотрите вместо этого автоматический режим, который имеет классификатор для проверки действий перед их запуском. Чтобы предотвратить использование инженерами --dangerously-skip-permissions вообще, установите permissions.disableBypassPermissionsMode на "disable" в управляемых параметрах.
Попробуйте контейнер-образец
Репозиторийanthropics/claude-code включает пример контейнера разработки, который объединяет CLI, брандмауэр исходящего трафика, постоянные тома и оболочку на основе Zsh. Он предоставляется как рабочий пример, а не как поддерживаемый базовый образ; используйте его, чтобы увидеть, как части подходят друг к другу, прежде чем применять их к вашей собственной конфигурации.
Установка предварительных условий
Установите VS Code и расширение Dev Containers.
Клонирование образца
Клонируйте репозиторий Claude Code и откройте его в VS Code.
Повторное открытие в контейнере
Когда будет предложено, нажмите Reopen in Container, или запустите Dev Containers: Reopen in Container из палитры команд.
.devcontainer/ в ваш репозиторий и отрегулируйте Dockerfile для вашей цепочки инструментов, или вернитесь к Добавление Claude Code в контейнер разработки, чтобы добавить только функцию в уже имеющуюся установку.
Справочная конфигурация состоит из трех файлов. Ни один из них не требуется при добавлении Claude Code в ваш собственный контейнер разработки через функцию, но они показывают один способ объединения частей.
| Файл | Назначение |
|---|---|
devcontainer.json | Монтирование томов, возможности runArgs, расширения VS Code и containerEnv |
Dockerfile | Базовый образ, инструменты разработки и установка Claude Code |
init-firewall.sh | Блокирует весь исходящий сетевой трафик, кроме разрешенных доменов |
Следующие шаги
После того как Claude Code работает в вашем контейнере разработки, страницы ниже охватывают остальную часть развертывания организации: выбор пути аутентификации, доставка управляемой политики вне репозитория, мониторинг использования и понимание того, что Claude Code хранит и отправляет.- Настройка Claude Code для вашей организации: выбор поставщика аутентификации, решение о том, как политика достигает устройств, и планирование развертывания
- Параметры, управляемые сервером: доставка управляемой политики из консоли администратора Claude.ai, чтобы инженеры не могли обойти ее, редактируя файлы репозитория
- Мониторинг использования и аудит деятельности: экспорт метрик OpenTelemetry и просмотр того, что запускает ваша команда
- Требования к сетевому доступу: полный список доменов для прокси и брандмауэров
- Услуги телеметрии и отказ: что Claude Code отправляет по умолчанию и переменные окружения, которые это отключают
- Изучение каталога
.claude: что содержит монтирование тома, включая учетные данные, параметры и историю сеанса - Модель безопасности: как система разрешений Claude Code, sandboxing и защита от внедрения подсказок работают вместе
- Режимы разрешений: полный диапазон от режима плана к автоматическому режиму к обходу и когда использовать каждый