WordPress в Docker на Ubuntu – удобный стенд: БД и PHP изолированы, проект переносится папкой, проще поднять второй инстанс. Ниже – установка Docker и Docker Compose, затем docker-compose с MySQL и WordPress. Для продакшена пароли, HTTPS и бэкапы настройте отдельно.
Шаг 1. Docker на Ubuntu
Обновите индекс пакетов и поставьте зависимости для HTTPS-репозитория:
sudo apt update sudo apt install apt-transport-https ca-certificates curl software-properties-common
Ключ и репозиторий Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt update apt-cache policy docker-ce sudo apt install docker-ce sudo systemctl status docker
apt-cache policy должен показать пакет из download.docker.com, не из «голого» Ubuntu universe. Сервис docker – active (running).
На новых Ubuntu вместо apt-key часто кладут ключ в /etc/apt/keyrings по актуальной инструкции Docker. Смысл тот же: официальный repo и пакет docker-ce.
Шаг 2. Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -oP '(?<=tag_name": "v)[^"]*')/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose docker-compose --version
Если плагин Compose V2 уже идёт с Docker Desktop / пакетом docker-compose-plugin, достаточно docker compose version (без дефиса). Команды ниже совместимы с классическим бинарником docker-compose.
Шаг 3. WordPress через Compose
mkdir ~/wordpress cd ~/wordpress
Файл docker-compose.yml:
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data:
Пароли в примере учебные. Перед выходом в сеть смените все MYSQL_* и WORDPRESS_DB_*, не публикуйте 8000 наружу без reverse proxy и TLS.
sudo docker-compose up -d
Мастер установки: http://localhost:8000 (или IP сервера:8000). Создайте админа, язык, постоянные ссылки – как на обычном WP.
Полезные команды
docker-compose ps docker-compose logs -f wordpress docker-compose down # down -v удалит volume db_data - база пропадёт
Плюсы и ограничения
Плюсы: одинаковое окружение на ноутбуке и VPS, быстрый снос стенда, изоляция MySQL. Минусы: нужно понимать volumes и сеть Docker, бэкапы – это дамп БД + файлы wp-content, обновления ядра/плагинов как в обычном WP. Для боя обычно добавляют nginx/Caddy, SSL, отдельный volume под uploads и мониторинг места на диске.
Если образ MySQL 5.7 на вашей архитектуре уже недоступен, замените на mysql:8.0 или mariadb:10.11 и при необходимости поправьте переменные совместимости – логика compose та же.