Кто хоть раз поднимал WordPress на локалке или сервере, знает, как это бывает муторно: ставь Apache/Nginx, настраивай PHP, ковыряйся с MySQL, потом что-то не работает, а логов нет. А если тебе нужно быстро поднять тестовый сайт или развернуть несколько проектов, то это вообще боль. Docker Compose пришёл, чтобы избавить нас от этой рутины и дать возможность за пару минут получить рабочий WordPress с базой и всеми плюшками. Давайте разберёмся, как это сделать по-быстрому и без костылей.
Возможности Docker Compose для WordPress
- Быстрый деплой — пару команд, и сайт крутится.
- Изоляция окружения — ничего не конфликтует, не засоряет систему.
- Лёгкое масштабирование — хочешь второй сайт? Копируй docker-compose.yml, меняй порты и имя БД.
- Простота отката — сломал что-то? docker-compose down и всё чисто.
- Миграция — хочешь перенести сайт? Просто передай папку с проектом и дамп базы.
Что потребуется (требования, ОС, железо)
- Операционная система: Linux (Ubuntu, Debian, Fedora), macOS, Windows (через WSL2 или Docker Desktop).
- Железо: 2+ ГБ ОЗУ, 2 CPU — больше, если планируешь работать не только с одним сайтом.
- ПО:
- Docker (актуальная версия, лучше 24+)
- Docker Compose (v2.x или встроенный в Docker Desktop)
- Желательно
git
для клонирования репозиториев (по желанию)
Установка — пошаговая инструкция
- Ставим Docker и Docker Compose
Linux:sudo apt update sudo apt install docker.io docker-compose -y sudo systemctl enable docker --now
macOS/Windows: Docker Desktop — всё в комплекте.
- Создаём проект
mkdir wp-docker && cd wp-docker
- Пишем docker-compose.yml
version: '3.9' services: db: image: mysql:5.7 container_name: wp-db restart: always environment: MYSQL_DATABASE: wordpress MYSQL_USER: wpuser MYSQL_PASSWORD: wppass MYSQL_ROOT_PASSWORD: rootpass volumes: - db_data:/var/lib/mysql wordpress: image: wordpress:latest container_name: wp-app depends_on: - db ports: - "8080:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wpuser WORDPRESS_DB_PASSWORD: wppass WORDPRESS_DB_NAME: wordpress volumes: - ./wp-content:/var/www/html/wp-content volumes: db_data:
- Меняй пароли под себя, не держи их такими в проде.
- Порт 8080 — чтобы не мешать стандартному 80-му.
- wp-content монтируется локально — удобно для разработки.
- Запускаем всё это дело
docker-compose up -d
Через минуту-две WordPress будет доступен на http://localhost:8080
- Установка WordPress
Открывай браузер, проходи стандартный setup (язык, логин, пароль, почта).
Использование: команды и варианты
docker-compose up -d
— запуск в фоновом режиме.docker-compose down
— стоп и удаление контейнеров (БД не трогается, т.к. volume).docker-compose logs -f
— смотреть логи.docker-compose exec wordpress bash
— попасть внутрь контейнера WP.docker-compose exec db bash
— попасть внутрь контейнера БД.docker-compose stop
/start
— стоп/старт без удаления.docker-compose down -v
— удалить контейнеры и volume (БД будет удалена!).- Остановка и обновление образов:
docker-compose pull docker-compose up -d --build
- Бэкап базы:
docker-compose exec db sh -c 'exec mysqldump -u wpuser -pwppass wordpress' > backup.sql
Ошибки и как делать не надо
- Не храни пароли в открытом виде в публичных репах.
- Не используй
latest
для production — всегда указывай конкретный тег образа. - Не забывай про volume для wp-content, иначе при пересоздании контейнера потеряешь темы/плагины.
- Не запускай всё под root, если не понимаешь, зачем.
- Не открывай порт 3306 наружу (MySQL) без необходимости.
- Если на сервере уже что-то крутится на 80-м порту — не мапь туда WordPress, используй другой порт или прокси.
Пример реального использования в окружении
В команде делаем фичи для WP-клиентов. Каждый разработчик клонирует репу, кидает свой docker-compose.yml, стартует проект и работает с ним локально, не боясь сломать прод. Для тестирования плагинов или тем — просто подмениваешь папку wp-content
на свою, и всё работает. Если надо — можно быстро запустить несколько разных версий WP, меняя только тег образа и порт.
Для CI/CD: на сервере Jenkins или GitLab CI можно запускать тесты в изолированном окружении, поднимая свежий WordPress перед прогоном автотестов, а потом всё удалять.
Заключение
Docker Compose — реально спасение для тех, кто не хочет тратить время на ручную настройку окружения для WordPress. Всё быстро, чисто, удобно и воспроизводимо. Пара минут — и у тебя готовый сайт, который можно масштабировать, переносить, откатывать и тестировать сколько угодно раз.
Официальные ссылки для изучения:
Всё просто: не бойся экспериментировать, автоматизируй рутину и не забывай бэкапить базу 🙂
Ваш отзыв