Docker — это платформа для автоматизации развертывания приложений в изолированных контейнерах. Контейнеры обеспечивают консистентную работу приложения на любом окружении, независимо от операционной системы и установленного ПО. Основные преимущества контейнеризации: лёгкость, масштабируемость, повторяемость и ускорение процессов разработки и тестирования.
Контейнеры отличаются от виртуальных машин тем, что используют ядро хостовой системы, не создавая полноценную виртуальную ОС. Это снижает накладные расходы и ускоряет запуск приложений. Контейнеры включают только необходимое для работы приложения: библиотеки, зависимости и код, что делает их лёгкими и портативными.
Docker доступен для всех основных платформ: Linux, Windows, macOS. После установки Docker Engine, основными инструментами становятся:
Проверка установки выполняется командой:
docker --version
docker-compose --version
После установки можно запускать контейнеры и создавать собственные образы.
Образ (image) — это шаблон, из которого создаются контейнеры. Образ включает все зависимости, конфигурации и код приложения. Контейнер — это запущенный экземпляр образа. Контейнер может быть остановлен, перезапущен или удалён без воздействия на сам образ.
Создание контейнера из образа:
docker run -d --name my-vue-app -p 8080:8080 vue-app-image
-d — запуск в фоне--name — имя контейнера-p — проброс портов хостовой системыDockerfile — текстовый файл с инструкциями для сборки образа. Пример для Vue.js приложения:
# Используем официальный Node.js образ
FROM node:18-alpine
# Создаем рабочую директорию
WORKDIR /app
# Копируем package.json и package-lock.json
COPY package*.json ./
# Устанавливаем зависимости
RUN npm install
# Копируем исходный код
COPY . .
# Собираем приложение для продакшн
RUN npm run build
# Используем Nginx для сервировки сборки
FROM nginx:alpine
COPY --from=0 /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
Пошаговое объяснение:
Сборка образа выполняется командой:
docker build -t vue-app-image .
Основные команды Docker для работы с контейнерами:
docker ps — список запущенных контейнеровdocker ps -a — список всех контейнеровdocker start <container> — запуск остановленного
контейнераdocker stop <container> — остановка
контейнераdocker rm <container> — удаление контейнераДля логов:
docker logs -f <container>
Docker Compose позволяет описывать несколько контейнеров в одном YAML-файле. Пример для Vue.js приложения с Nginx:
version: '3.8'
services:
vue-app:
build: .
ports:
- "8080:80"
volumes:
- ./dist:/usr/share/nginx/html
Запуск:
docker-compose up -d
Остановка и удаление контейнеров:
docker-compose down
&&..dockerignore.Контейнеры могут общаться друг с другом через сети Docker:
docker network create my-network
docker run --network my-network --name container1 my-image
Тома (volumes) используются для сохранения данных вне контейнера:
docker volume create vue-data
docker run -v vue-data:/app/data my-image
Тома позволяют сохранить данные между пересборками и перезапусками контейнеров.
Использование Docker для Vue.js позволяет:
Контейнеризация становится ключевым элементом современного фронтенд-разработчика, особенно для приложений на Vue.js, где важны быстрые сборки, модульность и стабильность окружения.