Docker — что и зачем Для начала, кратко о том, что это вообще такое и как оно работает: если упростить, это хуевина, которая позволяет каждый твой сервис(например, MySQL или Redis) запустить под индивидуальной виртуальной машиной.
Что получаем по факту - отсутствие ебли с ненужными проблемами и возможность поднять все, что тебе угодно в течение пары минут.
Сам по себе Docker - просто платформа, это не особо интересно, вот что реально круто и используется повсеместно - Docker Compose. Рассказываю.
Docker Composer Это обертка поверх Docker, которая позволяет через простейший конфиг поднимать многосервисные приложения. Например, у тебя есть сайтик, к нему нужен Apache, MySQL и сам daemon PHP. Ты все это дело прописываешь в конфиг, а дальше действует Docker - он скачает из реестра образы, сконфигурирует, запустит, тебе остается только начать кодить :)
А как мне туда засунуть мой проект? Очень просто - там есть такое понятие, как Volumes, тебе надо будет просто указать папку своего проекта в конфиге и она станет доступна изнутри нужного контейнера. Как работает docker-compose.yml В целом все просто, создаешь файлик docker-compose.yml, в нем ты перечисляешь список нужных сервисов, сохраняешь и выполняешь в терминале docker-compose up. Маgик! Ты за минуту поднял базу данных MySQL с названием moja-baza, юзером admin и паролем 123.
+ примеры полных docker-compose.yml: MySQL, сервер Minecraft иPhpMyAdminimage: mysql:5.7 environment: MYSQL_DATABASE: 'moja-baza' MYSQL_USER: 'admin' MYSQL_ROOT_PASSWORD: '123' ports:
- '3306:3306'
Чтоб дальше было проще ориентироваться в теме, приложу основные термины:
Контейнер — сама посудина для приложения, виртуалка в которой будет жить твой сервис, например, база данных. Образ — он же Image, это шаблончик, из которого будет собираться контейнер, например, MySQL или Redis. Docker Hub — это реестр, где хранятся образы, там ты можешь искать образы. Volume — волюмы хранят в себе данные приложения, это типа папочка, в которой лежит то, что насрала каждая отдельная виртуалка или то, что ты туда примонтировал сам.
Если есть вопросы - пишите в комментарии, постараюсь ответить.