Docker Compose wp nginx php mariadb
Last updated
Last updated
Docker – это программное обеспечение, которое может упаковать ваше приложение, его зависимости, системные инструменты, системные библиотеки и настройки в единый виртуальный контейнер. Этот комбинированный пакет, содержащий все необходимое для запуска вашего приложения, называется образом контейнера Docker . Этот образ представляет собой автономный исполняемый программный пакет, который надежно работает на любом сервере – Linux, Windows, macOS, публичное облако или частное облако. Также эти образы можно использовать для запуска приложения как изолированного процесса в пространстве пользователя.
Рассмотрим как развернуть WordPress с Nginx, PHP-FPM и MariaDB и PhpMyAdmin с помощью Docker Compose на компьютере с Ubuntu.
Добавим докер в автоматический запуск при загрузке ОС:
Docker-Compose доступен в репозитории, но его версии немного отстают от последней. Поэтому скачаем актуальную версию с GitHub
После завершения процесса проверьте установленную версию docker-compose:
В целях безопасности, мы не будем работать через root, а добавим существующего пользователя в группу docker и перезагрузим службу:
Создадим каталоги в которых будут хранится данные.
docker-compose.yml — это конфигурационный файл, в котором мы описываем какие контейнеры запускать, их настройки и связи между контейнерами.
— nginx/: каталог используемый для дополнительной конфигурации nginx, как виртуального хоста и т. д.
— logs/: каталог логов для nginx, mariadb и php.
— data/: каталог с файлами wordpress и файлы базы данных.
Далее в директории wordpress-compose/nginx создайте новый файл с конфигурацией nginx.
Вставьте следующее содержимое:
Сохраните файл и выйдите из редактора
Мы будем использовать Nginx последней версии. Настроим сопоставление портов для порта 8080 на хосте с портом 80 в контейнере. Настроим конфигурацию виртуального хоста Nginx, файлы журнала Nginx и корневой каталог веб-сервера /var/www/html. Также укажем что контейнер Nginx связан с контейнером WordPress.
Отредактируем файл docker-compose.yml:
Если вы копируете текст с сайта и вставляете в конфигурационный файл, убедитесь что форматирование не съехало и не появилось новых символов и пробелов, потому что из-за этого нарушается структура файла, что приводит к ошибкам.
Далее определим сервер MySQL, мы используем образ MariaDB последней версии. Назначим root пароль MySQL, имя базы данных, пользователя базы и его пароль. Для этого, вставьте в конфигурационный docker-compose.yml текст:
Теперь мы будем настраивать WordPress с помощью образа WordPress с PHP-FPM 7.4. Подключаем том Docker для директории /var/www/html в каталоге хоста WordPress, настроим базу данных, определив переменную среду WordPress, и свяжем WordPress с MySQL. Данные по настройке базы данных должны соответствовать предыдущей секции. Вставьте в конфигурационный docker-compose.yml текст:
Для управления СУБД прикручиваем phpmyadmin и на порт 8081:
После добавления составных частей в docker-compose.yml — файла, сохраните его и выйдите из редактора. Конфигурация docker-compose готова. У Вас должен получиться файл с таким содержимым:
Начнем создание новых контейнеров с docker-compose. Перейдите в каталог WordPress и запустите новые контейнеры на основании созданного нами файла.
Вы можете увидеть результаты выполнения команды. Были созданы четыре контейнера. Давайте проверим состояние контейнеров.
Если вы хотите увидеть вывод журнала из контейнера, вы можете использовать команды ниже:
Теперь откройте веб-браузер и введите URL-адрес сервера или IP-адрес.
Вы должны увидеть страницу установки WordPress. Выберите свой язык и нажмите ‘продолжить’.
Если у Вас не открылась страница установки, посмотрите логи nginx, а также файл hosts на компьютере с которого вы пытаете открыть сайт.
Заполните детали, такие как: название сайта, имя пользователя, пароль, адрес электронной почты и нажмите кнопку ‘Установить WordPress’. Вы будете перенаправлены на панель администратора WordPress.
Также по адресу http://server_IP:8081/ доступен phpMyAdmin
WordPress установлен с помощью docker-compose.
Чтобы убедиться, что все контейнеры доступны и проверить их состояние введите команду:
У нас уже 4 контейнера, теперь мы можем попытаться войти в каждый. Войдите в первый контейнер nginx с помощью команды docker-compose.
nginx – имя файла в Docker-Compose yml
bash – выполнение команды в оболочке bash.
Теперь проверим наши настройки виртуального хоста на WordPress.
Файл доступен в контейнере.
Далее попробуйте войти в контейнер MySQL, а затем в оболочку MySQL с помощью нашего пароля на файле.
Посмотреть список баз данных:
Вы увидите нашу базу данных WordPress.
В контейнере WordPress вы увидите все файлы CMS WordPress.