Введение в Docker
Программу, которая спокойно работает на одном компьютере, часто не удаётся просто перенести на другой. На новом месте не хватает библиотеки, стоит другая версия языка или нет программы, без которой сайт не стартует.
Представим сайт. Ему нужен интерпретатор PHP одной определённой версии и одно расширение. На сервере уже стоит другая версия PHP: её поставил соседний сайт. Если заменить версию, заработает новый проект и сломается старый. Если ничего не менять, не запустится новый.
Та же история на компьютере разработчика. Два проекта рядом просят две разные версии одной и той же программы. В системе обычно установлена одна копия на всех. Приходится вспоминать, что именно было установлено, и повторять это на каждом новом компьютере вручную.
Docker - это платформа, которая запускает программу в отдельной среде вместе с файлами и библиотеками, нужными именно ей. Снаружи, в обычной системе, эти библиотеки могут отсутствовать или быть других версий. Программа их оттуда не берёт: она пользуется тем, что лежит в её среде.
Такую среду называют контейнером. У контейнера свои файлы. Соседний контейнер их не видит и не может случайно перезаписать. Поэтому на одном компьютере уживаются два сайта с разным набором программ, и они друг другу не мешают.
Перенос становится проще. На другой компьютер ставят Docker и приносят ту же среду, а не список пакетов, которые надо вспомнить и установить руками. Раз набор библиотек едет вместе с программой, поведение не зависит от того, что уже стояло на машине.
Давайте приступим:)