Перейти к содержанию

Быстрый старт: Установка WordPress + MySQL c помощью Docker Compose

С помощью Docker Compose, можно легко запускать WordPress в изолированной среде, созданной с помощью контейнеров Docker. В этом кратком руководстве показано, как использовать Compose для настройки и запуска WordPress. Перед запуском убедитесь, что у вас установлен Docker Compose.

Определите проект

  1. Создайте пустой каталог проекта.

    Вы можете назвать каталог как-нибудь легко запомнить. Этот каталог является контекстом для вашего образа приложения. Каталог должен содержать только ресурсы для создания этого образа.

    Этот каталог проекта содержит docker-compose.yml файл, который сам по себе готов для хорошего стартового проекта WordPress.

    Совет: Вы можете использовать расширение .yml или .yaml для этого файла. Они оба работают.

  2. Перейдите в каталог вашего проекта..

    Например, если вы назвали свой каталог my_wordpress:

    cd my_wordpress/
    
  3. Создайте docker-compose.yml файл, который запускает ваш WordPress блог, и отдельный MySQL экземпляр с монтированием томов для сохранения данных:

    services:
      db:
        # В примере используем образ mariadb, который поддерживает архитектуру amd64 и arm64.
        image: mariadb:10.6.4-focal
        # Если вы действительно хотите использовать MySQL, раскомментируйте следующую строку
        #image: mysql:8.0.27
        command: '--default-authentication-plugin=mysql_native_password'
        volumes:
          - db_data:/var/lib/mysql
        restart: always
        environment:
          - MYSQL_ROOT_PASSWORD=somewordpress
          - MYSQL_DATABASE=wordpress
          - MYSQL_USER=wordpress
          - MYSQL_PASSWORD=wordpress
        expose:
          - 3306
          - 33060
      wordpress:
        image: wordpress:latest
        volumes:
          - wp_data:/var/www/html
        ports:
          - 80:80
        restart: always
        environment:
          - WORDPRESS_DB_HOST=db
          - WORDPRESS_DB_USER=wordpress
          - WORDPRESS_DB_PASSWORD=wordpress
          - WORDPRESS_DB_NAME=wordpress
    volumes:
      db_data:
      wp_data:
    

**Примечания **:

Сборка проекта

Теперь запустите docker compose up -d из каталога вашего проекта..

Он работает docker compose up в автономном режиме, извлекает необходимые образы Docker и запускает контейнеры wordpress и базы данных, как показано в примере ниже.

$ docker compose up -d

Creating network "my_wordpress_default" with the default driver
Pulling db (mysql:5.7)...
5.7: Pulling from library/mysql
efd26ecc9548: Pull complete
a3ed95caeb02: Pull complete
<...>
Digest: sha256:34a0aca88e85f2efa5edff1cea77cf5d3147ad93545dbec99cfe705b03c520de
Status: Downloaded newer image for mysql:5.7
Pulling wordpress (wordpress:latest)...
latest: Pulling from library/wordpress
efd26ecc9548: Already exists
a3ed95caeb02: Pull complete
589a9d9a7c64: Pull complete
<...>
Digest: sha256:ed28506ae44d5def89075fd5c01456610cd6c64006addfe5210b8c675881aff6
Status: Downloaded newer image for wordpress:latest
Creating my_wordpress_db_1
Creating my_wordpress_wordpress_1

Примечание: WordPress работает только на портах 80 и/или 443. Если вы получаете сообщение об ошибке о привязке 0.0.0.0 к порту 80 или 443 (в зависимости от того, какой вы указали), вполне вероятно, что порт, который вы настроили для WordPress, уже используется другим сервисом.

WordPress в веб-браузере

На этом этапе WordPress должен работать на порту 80 вашего хоста Docker, и вы можете выполнить «знаменитую пятиминутную установку» в качестве администратора WordPress.

**Примечание **: Сайт WordPress не сразу доступен через порт, 80 поскольку контейнеры все еще инициализируются, и первая загрузка может занять несколько минут.

Если вы используете Docker Desktop для Mac или Docker Desktop для Windows, вы можете использовать его http://localhost в качестве IP-адреса и открыть http://localhost:80 в веб-браузере.

Choose language for WordPress install

WordPress Welcome

Выключение и очистка

Команда docker compose down удаляет контейнеры и сеть по умолчанию, но сохраняет вашу базу данных WordPress.

Команда docker compose down --volumes удаляет контейнеры, сеть по умолчанию и базу данных WordPress.

Дополнительная документация по теме Docker Compose