Преимущества использования Docker
Изоляция: Каждое приложение работает в своём контейнере, что предотвращает конфликты между версиями зависимостей.
Мобильность: Контейнеры можно запускать на любом сервере, поддерживающем Docker.
Скорость: Быстрое развертывание и обновление приложений.
Консистентность: Все разработчики используют одинаковую среду.
Что потребуется
Установленный Docker и Docker Compose.
Базовые знания PHP и SQL.
Установленный редактор кода (например, VS Code).
Шаги настройки окружения
Создайте структуру проекта
project-directory/|-- app/| |-- index.php|-- docker-compose.yml|-- DockerfileНапишите Dockerfile
В Dockerfile будет описана конфигурация для PHP.
# Используем базовый образ PHPFROM php:8.2-apache# Устанавливаем необходимые расширенияRUN docker-php-ext-install mysqli# Копируем код приложения в контейнерCOPY app/ /var/www/html/Создайте docker-compose.yml
Файл docker-compose.yml поможет настроить взаимодействие между контейнерами (PHP и MySQL).
version: '3.8'services:app:build:context: .ports:- "8080:80"volumes:- ./app:/var/www/htmldepends_on:- dbdb:image: mysql:8.0environment:MYSQL_ROOT_PASSWORD: rootpasswordMYSQL_DATABASE: exampledbMYSQL_USER: userMYSQL_PASSWORD: passwordports:- "3306:3306"Создайте файл index.php
В директории
app/
создайте файлindex.php
с простым подключением к базе данных.<?php$servername = "db";$username = "user";$password = "password";$dbname = "exampledb";// Создаем подключение$conn = new mysqli($servername, $username, $password, $dbname);// Проверяем подключениеif ($conn->connect_error) {die("Connection failed: " . $conn->connect_error);}echo "Connected successfully";?>Запустите контейнеры
В корневой директории проекта выполните команду:
docker-compose up --buildПосле успешного запуска приложение будет доступно по адресу http://localhost:8080.
Полезные команды Docker
Остановить контейнеры:
docker-compose downПросмотреть запущенные контейнеры:
docker psВойти в контейнер:
docker exec -it container_name bash
Заключение
Использование Docker для разработки PHP и MySQL упрощает настройку окружения, делает его переносимым и управляемым. С помощью описанных шагов вы можете быстро развернуть полноценную среду для разработки, которая легко масштабируется и обновляется.
docker-compose up --build
docker-compose up -d
docker ps
version: "3.9"
services:
nginx:
image: nginx:latest
container_name: nginx-container
ports:
- 80:80