Привет! Сегодня покажу как быстро и по возможности без бубнов развернуть у себя на локальной машине одну из самых популярных и востребованных CMS — WordPress. Делать всё это будем на базе Windows 10 х 64 ну и конечно же при помощи Docker.

 Установка Docker. 

Microsoft Hyper-V (аппаратная виртуализации на уровне BIOS) является обязательным для установки Docker в Windows, так как необходим для создания виртуальных машин. Проверить включена ли у вас виртуализация: открываете командную строку (Win+R), и пишите команду systeminfo. Если подключена, то в пункте — «Требования Hyper-V» все значения будут «Да». Впрочем инсталлятор Docker предложит вам включить нужные для его работы компоненты. Дополнительно материал про установку Hyper-V в Windows 10.

Усанавливать будем Docker Desktop. Есть ещё Docker Toolbox, но он устарел (читать как его устанавливать) и не рекомендую его лить в систему без надобности. Скачиваем по ссылке установщик. Запускаем оставляем все чек-боксы как есть, следуем подсказкам и ждём завершения установки (распаковки). По завершению система принудительно перезагрузится. После Docker предложит пройти небольшое обучение. Для начала работы необходимо пройти регистрацию (получить Docker Id) и после авторизироваться в Docker Desktop.

Поплыли дальше, теперь стадия  развёртывания CMS WordPress .

На диске D: создам папку,  назовём wordpress. В неё пока помещу пустой docker-compose.yml. Это файл будет содержать инструкции, необходимые для запуска и настройки контейнера (настройка конфига в общем). В нём надо будет прописать настройку для базы данных mysql, версию wordpress и доступ к базе через phpmyadmin. Пример конфигурации буду брать из официального источника — документации docker для wordpress и конечно же дорабатывать под свои цели.

Мой  конфиг docker-compose.yml :

[member]
services:
  # database
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    networks:
      - wpsite
  # phpmyadmin
  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin
    restart: always
    ports:
      - '8080:80'
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: password 
    networks:
      - wpsite
  # wordpress
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - '8000:80'
    restart: always
    volumes: ['./:/var/www/html']
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
    networks:
      - wpsite
networks:
  wpsite:
volumes:
  db_data:
[/member]

Далее запускаем командную строку из папки D:\wordpress и выполняем:

docker-compose up -d

В первый раз у вас сначала пройдут пулы (скачивание имиджей mysql, phpadmin, wordpress ), а затем подготовка контейнеров. Убедимся что всё стало, командой:

docker ps

Данная команда показала все запущенные контейнеры (контейнеры запускаются на основе имиджей).

После запуска cms лежит по адресу localhost:8000 (см. конфиг), переходим и устанавливаем WordPress.

Вход в phpadmin по адресу: localhost:8080 (опять же смотрите конфиг). login:password => root:password

Так же можно поправить файл hosts (C:\Windows\System32\drivers\etc\hosts) добавив строчку подчёркнутую на скрине ниже. Тестовый стенд с wordpress теперь будет доступен по адресу test.localhost:8000

Содержание конфига docker-compose.yml без претензий на идеальность. Вы можете развернуть cms к примеру используя  более элегантный и короткий вариант :

[member]
wordpress:
    image: wordpress
    links:
     - mariadb:mysql
    environment:
     - WORDPRESS_DB_PASSWORD=password
    ports:
     - "80:80"
    volumes:
     - ./html:/var/www/html
mariadb:
    image: mariadb:10.0.33
    environment:
     - MYSQL_ROOT_PASSWORD=password
     - MYSQL_DATABASE=wordpress
    volumes:
     - ./database:/var/lib/mysql
[/member]

Только необходимо будет в папке с проектом положить две папки: html (там будет жить cms) и database (там будет жить база данных mariadb). Перед запуском конфига не лишним будет повесить на созданные папки разрешение:

Поставленная цель достигнута. При помощи Docker была развёрнута полнофункциональная cms wordpress. Удачи!