Docker предоставляет средство упаковки приложения с его зависимостями в изолированный контейнер, что обеспечивает одинаковое поведение на разных средах. Основной объект — Docker образ, который создаётся на основе Dockerfile.
docker build -t my-app . — создание образа из
Dockerfile.docker run -p 8080:80 my-app — запуск контейнера с
пробросом портов.docker ps — просмотр запущенных контейнеров.docker stop <container_id> — остановка
контейнера.# Использование официального Node.js образа
FROM node:20 AS build
# Установка рабочей директории
WORKDIR /app
# Копирование package.json и package-lock.json
COPY package*.json ./
# Установка зависимостей
RUN npm install
# Копирование исходного кода
COPY . .
# Сборка Angular приложения
RUN npm run build --prod
# Использование Nginx для сервирования приложения
FROM nginx:alpine
# Копирование собранного приложения в Nginx
COPY --from=build /app/dist/my-app /usr/share/nginx/html
# Открытие порта 80
EXPOSE 80
# Запуск Nginx в foreground
CMD ["nginx", "-g", "daemon off;"]
Особенности:
RUN, COPY) для
уменьшения размера..dockerignore, чтобы исключить ненужные
файлы.Docker Compose позволяет описывать несколько сервисов:
version: '3'
services:
frontend:
build: .
ports:
- "8080:80"
backend:
image: node:20
volumes:
- ./backend:/app
working_dir: /app
command: npm start
Это позволяет запускать фронтенд и бэкенд одним файлом конфигурации, управлять сетями и зависимостями между сервисами.
Контейнеризация обеспечивает предсказуемое окружение, ускоряет деплой и упрощает CI/CD процессы.