DevFM
2.36K subscribers
80 photos
5 videos
492 links
О разработке: технологии, инструменты, system design, процессы, команды

Для связи @sa_bul
Download Telegram
Docker. Практические советы

Мы активно пропагандируем использовать Docker для разработки и прода. Он упрощает управление зависимостями, позволяет в один клик поднимать окружение разработчика, обеспечивает стабильность деплоя и многое другое.

В статье Docker Best Practices for Python Developers собран полный набор практических советов по работе с докером. Важными считаем:
— располагать в docker файле команды в правильном порядке
— минимизировать количество слоёв в образе
— не запускать процессы от рута
— понимать разницу entrypoint и cmd
— использовать multi stage сборку
— использовать маленькие базовые образы

От себя дополним статью:
— вместо sudo docker... настройте запуск Docker as a non-root user
— замените устаревший docker-compose на docker compose. В свежих версиях compose является частью докера
— в compose файле можно не указывать поле version

Если знаете другие полезные советы напишите, пожалуйста, о них в комментариях.
#skills #docker
👍10🔥321
The ultimate docker compose cheat sheet

Хорошая статья, охватывающая основные аспекты docker compose. Автор начинает с базовых концепций, но будет полезна даже тем, кто хорошо знаком с компоузом.

Из интересного:
– параметр, позволяющий рестартить сервис, если он завалился
– как одному сервису дождаться запуска другого сервиса с использованием определенных условий. Бывает полезно, когда веб-сервис дожидается старта базы данных
– как задавать healthcheck сервисов с различными параметрами
– также автор разжёвывает тему volumes и networks

У нас был отдельный пост с практическими советами по докеру.

#skills #docker
11👍6🔥5😁2
Обзор способов защиты контейнеров Docker

Докеры мы любим, а думать о безопасности докеров — не всегда.

Неплохая обзорная статья о том, что вы можете сделать для повышения безопасности, чтобы не попасть впросак :)

Автор начинает с актуальности в виде известных инцидентов за 2024 год и, в целом, видов угроз для контейнеров.

Итак, переходим к делу:
🔹 Ограничивайте привилегии контейнеров — по умолчанию они могут запускаться с избыточными правами, что создает новые вектора для атак. Отключайте ненужные привилегии.
🔹 Запускайте rootless-контейнеры — пусть они работают от имени обычного пользователя, а не от root'а.
🔹 Настраивайте сетевую изоляцию — не давайте контейнерам бесконтрольно общаться друг с другом и с внешним миром. Чётко определяйте, кто с кем может взаимодействовать.
🔹 Используйте специальные инструменты — AppArmor, Seccomp и SELinux, они помогут ограничивать системные вызовы и предотвращать несанкционированный доступ к критическим ресурсам.
🔹 Сканируйте образы на уязвимости — Trivy, Docker Scout и аналогичные инструменты помогут обнаружить проблемные зависимости ещё на этапе сборки. Встраивайте эти инструменты в свой CI/CD.
🔹 И, самое базовое, что может делать каждый разработчик — минимизируйте образы, убирайте лишние зависимости, не тяните за собой ненужные файлы, следите за обновлениями базовых образов, запускайте контейнеры от не привилегированных пользователей.

#tools #docker
👍8🔥8🌭4