PassFront
  1. PassFront
  2. База знаний
  3. Dockerfile и образы

Как уменьшить размер и повысить безопасность Docker-образа?

Dockerfile и образы

Размер и безопасность образа зависят от базового образа, состава слоёв и прав процесса.

Размер

  • Лёгкая база: alpine, slim или distroless вместо полного node или ubuntu.
  • Multi-stage build: в итог попадает только результат сборки.
  • npm ci --omit=dev и очистка кеша пакетных менеджеров в том же RUN.
  • .dockerignore, чтобы не копировать лишнее.

Безопасность

  • Запускать процесс не от root:
FROM node:22-alpine
WORKDIR /app
COPY --chown=node:node . .
USER node
CMD ["node", "server.js"]
  • Фиксировать версию базы (node:22.11-alpine) или хеш, а не latest.
  • Не класть секреты в образ: ни в ENV, ни в COPY. Передавать их при запуске или через секреты BuildKit.
  • Регулярно сканировать образ (Trivy, Docker Scout) и обновлять базу.
  • Минимум пакетов: меньше пакетов, меньше уязвимостей.

Коротко для собеседования

Лёгкая база, multi-stage, отсутствие лишнего, запуск не от root, закреплённые версии и никаких секретов внутри образа.

Другие вопросы раздела