Docker Best Practices, вернемся к основам.
Coding
Вы новичок в Docker? Я был тоже. Каждый хочет создавать классные проекты с помощью Docker, создавать оброз и запускать контейнеры. Это круто! Докер это круто. Но вы упустили пункт, есть некоторые правила, чтобы его использовать.
Правило номер один! Держите это простым и маленьким.
Образ Docker должны быть МАЛЕНЬКИМИ. Как можно меньше.
Docker - это система преобразования, а не виртуальная машина, не воспроизводите на ней весь свой дистрибутив GNU / Linux.
Чтобы получить облегченный образ, вы можете сначала взглянуть на версии Alpine.
Alpine - это Linux на основе MUSL и BusyBox вместо базового GNU. Если вы все равно хотите использовать базовый образ Debian, не забудьте очистить apt после установки пакетов.
Выберите образ официального Docker, вы должны.
В Docker Hub имеется множество образов Docker, но не все средства защиты. Вы должны выбрать официальный образ и добавить к нему то, что вам нужно.
Например, не используйте образ PHP, созданное неизвестным человеком в Hub, но предпочитайте использовать официальный образ php с адаптированным тегом.
Если вам действительно нужно использовать неофициальный образ, загляните в Dockerfile. Большая часть образов содержит Dockerfile, связанный с образом. Если базовый образ основано на другом неофициальном образе, ищите его! Идти глубже возможно. Наконец, избегайте закрытых образов без предоставленного Dockerfile, это может быть небезопасно.
Вы говорите, тег образа? Не используйте последние.
Когда вы создаете Dockerfile, все как всегда добавляют оператор FROM с последним тегом на образ. Все, не ври.
Так что не делай этого! По той простой причине, что последний тег является последним, а не более стабильным. Если последний тег изменится на верхнюю версию, он может сломать всю вашу систему. Вы должны рассмотреть возможность выбора версии независимо от используемого вами базового образа.
Среда разработки не такая, как производственная среда
Для использования на производстве существует больше правил. Прежде всего, не используйте docker-compose на производстве.
Предпочитаю использовать оркестратор, такой как Swarm или Kubernetes.
Если вам нужно использовать docker-compose в проекте, вы можете переключиться на оркестратор. Это не так уж и сложно.
Во-вторых, контейнеры должны быть без гражданства. Например, не объединяйте базы данных.
Наконец, один контейнер, одна задача. Контейнер должен выполнять только одну вещь, например запуск веб-сервера, выполнение скрипта, запуск ElasticSearch или Redis или RabbitMQ, даже GitLab, но не все вместе.
В заключение:
- Делайте маленькие и простые образы
- По возможности используйте официальные оброзы Docker Hub
- Никогда не используйте последний тег
- Будьте осторожны с тем, что вы делаете на производстве
Полезные ссылки
https://docs.docker.com/develop/dev-best-practices/
https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
https://serversforhackers.com/c/getting-started-with-docker
https://docs.docker.com/docker-for-mac/
https://etherealmind.com/basics-docker-containers-hypervisors-coreos/
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-16-04
https://dzone.com/articles/50-useful-docker-tools

Заметили ошибку или есть вопросы?Рассказывай нам о них,связаться с нами ты сможешь с помощью нашего чата или же с помощью бота обратной связь
Не забывайте ставить 👍 если вам понравилась и подписаться на канал