Гид по технологиям

Интеграция Docker в Visual Studio Code

6 min read DevTools Обновлено 16 Sep 2025
Интеграция Docker в Visual Studio Code
Интеграция Docker в Visual Studio Code

TL;DR

Интеграция Docker в VS Code через официальное расширение от Microsoft ускоряет создание контейнеров, отладку и развёртывание. Установите Docker и VS Code, добавьте расширение, используйте Docker Explorer для управления контейнерами, а для быстрого создания Dockerfile примените команду «Add Docker files to Workspace». Ниже — пошаговое руководство, примеры Dockerfile и docker-compose, чеклисты, рекомендации по безопасности и диагностике.

Интеграция Docker в VS Code

Введение

Интеграция Docker в Visual Studio Code делает разработку проще: вы можете визуально просматривать контейнеры и образы, генерировать Dockerfile, запускать контейнеры и открывать терминалы или логи в один клик. Эта статья объясняет, как настроить расширение Docker, как работать с контейнерами и образами прямо в редакторе, и какие есть альтернативы и практические приёмы.

Основные термины

  • Контейнер: изолированный экземпляр процесса, запущенный из образа.
  • Образ (image): слоёный шаблон для запуска контейнера.
  • Dockerfile: набор инструкций для сборки образа.
  • Docker Compose: файл для описания и запуска многоконтейнерных приложений.

Предварительные требования

  1. Установленный Docker Desktop (Windows/Mac) или Docker Engine (Linux).
  2. Установленный Visual Studio Code (рекомендуется последняя стабильная версия).
  3. Доступ к интернету для загрузки образов и расширения.

Важно: на Windows часто требуется включённая интеграция WSL 2 для корректной работы Docker и лучшей совместимости с инструментами командной строки.

Установка расширения Docker в VS Code

  1. Откройте вид Extensions (Расширения) в VS Code.
  2. Найдите «Docker» и установите официальное расширение от Microsoft.

Установить расширение Docker

После установки в нижнем левом углу появится значок Docker/Containers — это Docker Explorer.

Панель Docker Explorer в VS Code

Подключение Docker Desktop к VS Code

Когда Docker Desktop запущен, расширение автоматически подключается к локальному демонy Docker. Дополнительная настройка требуется, только если вы используете удалённый Docker daemon, нестандартные контексты или WSL.

Чтобы проверить подключение, кликните значок Docker/Containers и откройте Docker Explorer. Там отобразятся запущенные и остановленные контейнеры, образы, тома, сети и контексты.

Проверка интеграции Docker

Важно: если соединение не устанавливается, проверьте статус Docker Desktop, переменные окружения DOCKER_HOST и доступность сокета /var/run/docker.sock (Linux) или настройки контекста Docker.

Управление контейнерами, образами и томами из VS Code

Через Docker Explorer вы можете:

  • Просматривать и фильтровать контейнеры.
  • Правым кликом запускать, останавливать, перезапускать, удалять контейнеры.
  • Просматривать логи и подключаться к терминалу контейнера.

Управление контейнерами в VS Code

Для изображений доступны операции pull/push, сборка (Build Image) и удаление неиспользуемых образов.

Запуск, остановка и удаление контейнера

Чтобы удалить неиспользуемый образ, щёлкните по нему правой кнопкой и выберите Remove.

Удаление Docker образа

Тома также видны в отдельной секции — вы можете просмотреть связанные контейнеры или удалить томы, которые больше не нужны.

Управление томом Docker

Дополнительно можно управлять сетями, регистрами контейнеров и контекстами Docker, а также отправлять обратную связь через встроенный раздел Help & Feedback.

Быстрая практика: создать и запустить Node.js приложение

Ниже пошаговый пример: создадим простое Express-приложение, сгенерируем Dockerfile и запустим контейнер из VS Code.

  1. Создайте папку проекта и файл index.js со следующим кодом:
const express = require("express");
const server = express();
const PORT = 4000;

server.get("/", (req, res) => {
  res.send("Welcome to our Express app!");
});

server.listen(PORT, () => {
  console.log(`App running on port ${PORT}`);
});
  1. Инициализируйте package.json (если ещё не создан):
npm init -y
npm install express
  1. Сгенерируйте Docker файлы через командную палитру: откройте Command Palette (⇧⌘P на Mac или Ctrl+Shift+P на Windows) и выполните команду Add Docker files to Workspace.

Добавить Docker файлы в рабочую область

Выберите Node.js как платформу и укажите package.json в корне проекта. Укажите порт (4000) и подтвердите добавление docker-compose, если хотите.

Выбор Node.js для генерации файлов

После этого расширение создаст Dockerfile, .dockerignore и, при выборе, compose.yaml.

Генерация необходимых файлов

Ниже — типичный Dockerfile, который часто генерирует расширение (пример для Node.js, адаптируйте под ваш проект):

# Используем официальный образ Node.js как базовый
FROM node:16-alpine

# Устанавливаем рабочую директорию
WORKDIR /usr/src/app

# Копируем package*.json и устанавливаем зависимости
COPY package*.json ./
RUN npm install --production

# Копируем исходники приложения
COPY . .

# Открываем порт контейнера
EXPOSE 4000

# Команда запуска
CMD ["node", "index.js"]

Если у вас есть dev-зависимости и нужен режим разработки с hot-reload, можно использовать multi-stage или монтирование тома в docker-compose.

Сборка и запуск образа из VS Code

  1. Правый клик по Dockerfile -> Build Image или выполните Docker Images: Build Image в Command Palette.

Сборка Docker образа

  1. После успешной сборки образ появится в секции Images.

Проверка собранного образа

  1. Правый клик по образу -> Run или используйте команду container images: run.

Запуск Docker образа

  1. Выберите нужный тег/образ и подтвердите параметры запуска. Контейнер появится в разделе Containers.

Выбор образа для запуска

  1. Откройте приложение: правый клик по запущенному контейнеру -> Open in Browser.

Открыть контейнер в браузере

В выводе контейнера вы увидите, что сервер слушает указанный порт.

docker-compose: пример для разработки

Если вы выбрали создание docker-compose, пример файла compose.yaml может выглядеть так:

version: '3.8'
services:
  app:
    build: .
    ports:
      - "4000:4000"
    volumes:
      - .:/usr/src/app
    environment:
      - NODE_ENV=development

Такое решение удобно для разработки: том монтирует исходники в контейнер, что позволяет вносить изменения без пересборки образа.

Отладка и логирование в VS Code

  • Откройте лог контейнера через Docker Explorer -> контейнер -> View Logs.
  • Подключитесь к терминалу контейнера через Attach Shell.
  • Для Node.js можно настроить конфигурацию launch.json для attach к запущенному процессу с флагами debug.

Альтернативные подходы

  • Использовать только Docker CLI (docker build, docker run) — полезно для автоматизации и CI.
  • Devcontainers (Remote - Containers) — для создания преднастроенных dev-окружений прямо в VS Code.
  • Skaffold/ Tilt — для локальной разработки микросервисов с автоматической перезагрузкой при изменениях.

Чеклист перед деплоем

  • Образ собран и протестирован локально.
  • Минимизированы слои и кэширование зависимостей.
  • .dockerignore настроен корректно.
  • Переменные окружения вынесены в безопасное хранилище.
  • Сканы безопасности выполнены (Snyk, Trivy и т.п.).

Тесты и критерии приёмки

  • Приложение запускается в контейнере без ошибок.
  • HTTP-эндпоинт / возвращает ожидаемый ответ.
  • Образ не превышает целевого размера (по вашей политике).
  • Отсутствуют секреты в слоях образа.

Диагностика ошибок — быстрое руководство

  • Docker не подключается к VS Code: проверьте, запущен ли Docker Desktop и выбран ли правильный контекст.
  • Сборка падает на npm install: проверьте node-версию базового образа и наличие package-lock.json.
  • Порт недоступен: убедитесь, что порт проброшен (EXPOSE в Dockerfile и ports в compose).

Безопасность и рекомендации по жёсткой настройке

  • Минимизируйте базовые образы (alpine, slim).
  • Запускайте процессы не от root внутри контейнера (USER).
  • Не храните секреты в образах; используйте менеджеры секретов или переменные окружения на уровне оркестратора.

Роли и обязанности (короткие чеклисты)

  • Разработчик: создать Dockerfile, описать зависимости, протестировать локально.
  • DevOps: интегрировать сборку в CI, сканировать образы, пушить в реестр.
  • Тестировщик: запускать контейнеры в изолированной среде, выполнять функциональные тесты.

Модель принятия решений (Mermaid)

flowchart TD
  A[Есть локальный Docker?] -->|Да| B{Запустить VS Code расширение}
  A -->|Нет| C[Установить Docker]
  B --> D{Нужно ли devcontainer?}
  D -->|Да| E[Использовать Remote-Containers]
  D -->|Нет| F[Использовать Docker Extension]

Когда интеграция может не подойти

  • Если вы используете только удалённые серверы без доступа к локальному Docker daemon.
  • Когда в проекте используются нестандартные runtime или аппаратно-зависимые компоненты.

Факто-бокс — ключевые шаги

  • Установить Docker и VS Code.
  • Установить расширение Docker (Microsoft).
  • Сгенерировать Dockerfile через Command Palette.
  • Сборка образа и запуск контейнера через Docker Explorer.

Короткое объявление для команды (для рассылки)

Интеграция Docker в VS Code завершена: теперь можно генерировать Dockerfile, собирать образы и запускать контейнеры прямо из редактора. Рекомендуется обновить локальные копии репозиториев и следовать чеклисту перед пушем в реестр.

Вывод

Интеграция Docker в VS Code отлично подходит для ускорения локальной разработки и тестирования контейнеризованных приложений. Расширение покрывает большинство повседневных задач: генерация файлов, сборка образов, управление контейнерами, просмотр логов и подключение к терминалу. Для продакшен-сборок и сложной оркестрации рекомендуем дополнять локальные действия CI/CD-пайплайнами и инструментами для сканирования безопасности.

Важно: используйте DevContainers для воспроизводимых dev-окружений и отделяйте обязанности между командами: разработчики — за Dockerfile и тесты, DevOps — за CI и безопасность.

Проект добавлен в Images в Docker Explorer

Подтверждение запущенного контейнера

Вывод приложения в браузере

Краткое резюме

  • Интеграция Docker в VS Code экономит время и упрощает рабочий процесс.
  • Используйте генерацию файлов, Docker Explorer и возможности отладки для быстрого цикла разработки.
  • Следуйте чеклистам по безопасности и тестированию перед деплоем.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Herodotus: механизм и защита Android‑трояна
Кибербезопасность

Herodotus: механизм и защита Android‑трояна

Включить новое меню «Пуск» в Windows 11
Windows руководство

Включить новое меню «Пуск» в Windows 11

Панель полей сводной таблицы в Excel — руководство
Excel

Панель полей сводной таблицы в Excel — руководство

Включить новое меню «Пуск» в Windows 11
Windows 11

Включить новое меню «Пуск» в Windows 11

Дубликаты Диспетчера задач в Windows 11 — как исправить
Windows

Дубликаты Диспетчера задач в Windows 11 — как исправить

История просмотров Reels в Instagram — как найти
Instagram

История просмотров Reels в Instagram — как найти