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

Интеграция 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
Автор
Редакция

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

Пересылка почты Outlook ↔ Gmail: полное руководство
Почта

Пересылка почты Outlook ↔ Gmail: полное руководство

Как узнать, что пора менять батарейку AirTag
Гаджеты

Как узнать, что пора менять батарейку AirTag

Как удалить устройства из Google Home
Умный дом

Как удалить устройства из Google Home

Вернуть «Open command window here» в Windows 11
Windows

Вернуть «Open command window here» в Windows 11

Подключение Bluetooth-наушников к Wear OS
Гаджеты

Подключение Bluetooth-наушников к Wear OS

Запустить успешную страницу на Patreon
Монетизация

Запустить успешную страницу на Patreon