Docker как запустить wordpress на ubuntu

Обновлено: 07.07.2024

WordPress уже давно является одним из самых популярных веб-приложений. Система управления контентом WordPress постоянно развивается в течение многих лет, благодаря чему с её помощью можно создать почти бесконечное количество уникальных сайтов (или даже веб-приложений).

Данное руководство поможет упаковать и поместить в контейнеры Docker несколько приложений WordPress, а также подобрать самый простой и надёжный способ развертывания нескольких сайтов WordPress на одном хосте.

Что такое Docker?

Для этого Docker создаёт для приложения надёжное окружение на основе LXC (Linux Containers). Такие образы контейнеров можно построить вручную при помощи ряда команд; также можно автоматизировать этот процесс с помощью Dockerfiles.

Что такое WordPress?

Система управления контентом WordPress изначально разрабатывалась как общедоступная и простая в установке блог-платформа. Со временем платформа WordPress стала чрезвычайно популярной, что привело к созданию сторонних плагинов и расширений. Таким образом блог-платформа превратилась в CMS. WordPress позволяет быстро создать и развернуть практически любой сайт или приложение.

WordPress – открытая платформа, основанная на PHP. На сегодняшний день язык программирования PHP является одним из самых популярных языков для создания сайтов и веб-приложений.

Сайты WordPress используют реляционную БД MySQL для хранения данных.

Установка Docker в Ubuntu

Обновите пакеты сервера:

sudo apt-get update
sudo apt-get -y upgrade

Включите поддержку Aufs:

sudo apt-get install linux-image-extra-`uname -r`

Добавьте ключ репозитория Docker в apt-key для проверки:

Добавьте репозиторий Docker:

sudo sh -c "echo deb http://get.docker.io/ubuntu docker main\
> /etc/apt/sources.list.d/docker.list"

sudo apt-get update

Загрузите и установите Docker:

sudo apt-get install lxc-docker git

Настройка переадресации трафика UFW

Стандартный брандмауэр Ubuntu UFW по умолчанию блокирует весь переадресованный трафик, который необходим для работы docker.

Отредактируйте конфигурационный файл брандмауэра:

sudo nano /etc/default/ufw

Найдите в файле строку DEFAULT_FORWARD_POLICY:

И замените стандартное значение:

Нажмите CTRL+X и Y, чтобы закрыть и сохранить файл.

sudo ufw reload

Настройка удалённых подключений

Чтобы иметь возможность работать с демоном Docker удалённо, нужно разблокировать стандартный порт Docker, 4243.

sudo ufw allow 4243/tcp

Использование Docker

Интерфейс командной строки

После установки демон Docker запустится в фоновом режиме и будет готов к приему команд, отправленных клиентом Docker. Однако в некоторых ситуациях приходится запускать Docker вручную.

Чтобы запустить демон Docker:

sudo docker [option] [command] [arguments]

Примечание: Docker требует прав sudo, поскольку он использует порты и сокеты, принадлежащие root.

Клиентские команды

Чтобы получить полный список клиентских команд Docker, вызовите клиент:

На экране появится список доступных команд (эти команды актуальны для версии 0.8.0):

Commands:
attach Attach to a running container
build Build a container from a Dockerfile
commit Create a new image from a container's changes
cp Copy files/folders from the containers filesystem to the host path
diff Inspect changes on a container's filesystem
events Get real time events from the server
export Stream the contents of a container as a tar archive
history Show the history of an image
images List images
import Create a new filesystem image from the contents of a tarball
info Display system-wide information
insert Insert a file in an image
inspect Return low-level information on a container
kill Kill a running container
load Load an image from a tar archive
login Register or Login to the docker registry server
logs Fetch the logs of a container
port Lookup the public-facing port which is NAT-ed to PRIVATE_PORT
ps List containers
pull Pull an image or a repository from the docker registry server
push Push an image or a repository to the docker registry server
restart Restart a running container
rm Remove one or more containers
rmi Remove one or more images
run Run a command in a new container
save Save an image to a tar archive
search Search for an image in the docker index
start Start a stopped container
stop Stop a running container
tag Tag an image into a repository
top Lookup the running processes of a container
version Show the docker version information
wait Block until a container stops, then print its exit code

Использование Dockerfiles

Что такое Dockerfiles?

Dockerfiles – это скрипты, состоящие из объявленных последовательно команд, которые нужно выполнить в указанном порядке, чтобы автоматически создать образ Docker.

Эти файлы всегда начинаются с определения базового образа при помощи параметра FROM. После этого начинается процесс сборки; каждое последующее действие формирует окончательный образ с комментариями (коммитами).

Dockerfiles используются при помощи команды build:

Команды Dockerfiles

Dockerfiles отвечают на следующие команды:

  • ADD: копирует файл с хоста в контейнер.
  • CMD: задаёт команды по умолчанию, которые нужно выполнить, или передает параметру ENTRYPOINT.
  • ENTRYPOINT: устанавливает стандартную точку входа приложения внутри контейнера.
  • ENV: задаёт переменные окружения (например, ключ-значение).
  • EXPOSE: открывает порт.
  • FROM: задаёт базовый образ.
  • MAINTAINER: указывает имя автора/владельца данного Dockerfile.
  • RUN: запускает команду и сохраняет комментарий для образа.
  • USER: указывает пользователя, который должен запускать контейнер.
  • VOLUME: монтирует каталог с хоста в контейнер.
  • WORKDIR: указывает каталог, в котором должны запускаться директивы CMD.

Создание контейнера WordPress

Извлечение образа

В данном руководстве используется образ WordPress «из коробки» по имени tutum/wordpress. Чтобы создать контейнеры при помощи этого образа, нужно сначала загрузить сам образ.

docker pull tutum/wordpress

Данная команда загружает базовые образы и все слои.

После загрузки образа достаточно запустить всего одну команду, чтобы создать контейнеры WordPress.

Создание общедоступного контейнера WordPress

Запустите следующую команду, чтобы создать контейнер, доступный в сети по указанному порту (например, 80).

Создание локальных контейнеров WordPress

Иногда контейнеры должны быть доступны только локально (например, если вы хотите настроить балансировку нагрузки или дополнительный обратный прокси-сервер).

Чтобы создать локальные контейнеры WordPress:

После запуска этой команды Docker создаст локальные контейнеры, предоставит вам их ID, а затем назначит порт. Чтобы задать порт самостоятельно, используйте команду port:

В таком случае контейнер будет доступен только с локального хоста на порте 49156. Полный адрес контейнера можно использовать для перенаправления соединений с обратного прокси-сервера.

Чтобы указать порт, просто поместите его между IP-адресом и внутренним портом веб-сервера (например, 80).

В таком случае контейнер WordPress будет доступен локально на порте 8081.

Примечание: Чтобы запустить контейнер в фоновом режиме, добавьте флаг -d в команду run:

В противном случае вы будете подключены к контейнеру.

Чтобы покинуть контейнер, нужно использовать комбинацию клавиш CTRL+P и сразу нажать CTRL+Q.

При помощи команды docker ps можно получить список запущенных контейнеров и найти необходимый ID.

Примечание: С помощью аргумента -name [name] можно закрепить за контейнером имя, которое используется вместо ID.

docker run -d -name new_container_1 ..

Ограничение использования памяти

Для того чтобы ограничить объем памяти, который может использовать процесс контейнера docker, используйте флаг -m [memory amount].

К примеру, чтобы установить лимит памяти в 256 MB:

Чтобы проверить лимит памяти контейнера, используйте команду inspect:

Чтобы получить всю необходимую информацию, касающуюся определённого контейнера, введите:

sudo docker inspect [container ID]

Также следует помнить о том, что ядро Linux должно поддерживать ограничения swap, в противном случае установить лимит памяти не получится.

Примечание: Более подробную информацию о docker можно найти в документации.


В данной статье мы рассмотрим процесс создания собственной пентест-лаборатории для WordPress на:

  • Ubuntu 20.04
  • Docker
  • Windows с использованием XAMPP

Непосредственно тесты на проникновения можно делать с помощью WPScan, о котором мы уже писали.

WordPress в Ubuntu 20.04

Для работы WordPress необходимы:

Apache


Установка MySQL

Для работы WordPress понадобиться сервер базы данных, в качестве которого мы собираемся выбрать MariaDB.


Следующая команда защитит базу данных от удаленного доступа с root-правами.

После чего нужно ответить на ряд вопросов:

  • Введите текущий пароль для root (введите, если нет): нажимаем Enter
  • Установить пароль root? [Y/n]: Y
  • Новый пароль: вводим пароль
  • Повторно введите новый пароль: повторяем пароль
  • Удалить анонимных пользователей? [Y/n]: Y
  • Запретить удаленный вход с root правами? [Y/n]: Y
  • Удалить тестовую базу данных и получить к ней доступ? [Y/n]: Y
  • Перезагрузить таблицы привилегий сейчас? [Y/n]: Y


Установить php

Завершаем этап подготовки установки php php-MySQL, для чего нужно выполнить следующую команду.


Создать базу данных для WordPress

Вводим команду для создания базы данных для WP:


Установка и настройка WordPress

Теперь пришло время загрузить и установить WordPress на нашем локальном хосте. С помощью команды wget мы получаем архив с установщиком wordpress и извлекаем его в каталог /var/www/html.


Данная команда изменит владельца каталога «wordpress» и даст разрешение на загрузку файлов.


Теперь чтобы начать процесс установки необходимо ввести в браузере адрес сайта, который в нашем случае расположен на локальном хосте.

Первым этапом в процессе установки WordPress будет выбор языка.


Далее мы увидим окно с необходимыми для работы WP требованиями, но мы все уже подготовили заранее.


Чтобы WordPress правильно установился и работал необходимо ввести данные для подключения к созданной ранее базе данных.


Далее необходимо ввести данные нашего веб-сайта.


Стоит отметить, что запрашиваемые данные логина и пароля:

  • Перед установкой WP – относятся к информации о базе данных.
  • После установки WP – относятся к админке WordPress.

После этого откроется страница входа в админку WordPress.


Откройте файл wp-config.php в каталоге wordpress и вставьте в него следующие строки, чтобы получить доступ к странице веб-сайта.

Вот и все готово и наш WordPress для пентеста готов к работе.


Установка WordPress на Docker

Установка WordPress на Docker намного проще в плане предподготовки. Это очень простой и быстрый метод настройки WordPress. Необходимо обладать лишь базовыми знаниями о docker и его функциях.

Первым делом обновим репозиторий Ubuntu и установим последнюю версию docker.io с помощью команды apt:


Docker Compose используется для запуска нескольких контейнеров как одной службы. Давайте начнем установку docker-compose с помощью apt:


Теперь мы должны создать каталог с именем "WordPress", а также файл .yml, который будет содержать необходимую для установки информацию.


Теперь вставьте следующий текст в .yml и сохраните конфигурацию. Исходный код взят отсюда.


Теперь запустим докер в режиме отсоединения с помощью команды:


После выполнения всех пошаговых настроек переходим к локальному хосту через порт 8000. Теперь остается лишь установить WP, что мы уже проделывали ранее.


После завершения установки необходимо в админке WP ввести адрес своего локального хоста с номером порта, на котором работает ваш докер.


Вот и все. Теперь WordPress готов для пентестов.


WordPress на Windows

На Windows установить WordPress опять проще, чем на Ubuntu, ведь с помощью XAMPP мы можем сэкономить время на установке:


Распакуем zip-архив WordPress в папку htdocs в папке xampp на диске C.


Теперь откроем PHPMYADMIN в браузере. Для этого зайдём в /localhost/phpMyAdmin, где создадим базу данных для WordPress.


Вводим данные доступа к базе данных.


Как и в предыдущих случаях устанавливаем WordPress.


Чтобы сделать движок более уязвимым для пентеста можно установить подобные плагины.


Также WordPress для пентеста всегда можно разместить на серверах AlexHost.

Wordpress-Docker

Одна из вещей, которые мы должны сделать после установки Ubuntu 16.04 и многое другое, если мы приходим к чистой установке, - это переустановить все те программы, которые мы используем в нашей Ubuntu. Если вы веб-разработчик, вам наверняка будет интересно установить WordPress на свой компьютер. Поэтому в Ubunlog мы хотим показать вам, как очень легко установить WordPress в Ubuntu, выполнив всего три шага, с помощью инструмента под названием Докер. Мы вам скажем.

Что такое докер?

Прежде всего и в первую очередь стоит объяснить, что это такое и как работает Докер. Что ж, Docker - это бесплатное приложение, которое позволяет нам упаковывать наши программные проекты в так называемый контейнер (контейнер по-английски). Таким образом, мы можем получить Полная файловая система, содержащая все необходимое (исходный код, необходимые библиотеки, системные инструменты . ), чтобы иметь возможность запускать указанное приложение на любом компьютере, поддерживающем Docker, как если бы это был портативное приложение.

Установка Docker и WordPress

В Docker есть инструмент под названием Docker Compose что именно помогает нам управлять контейнерами проекта, таким образом имея возможность запускать, останавливать, удалять их или видеть их статус. Чтобы установить его, нам просто нужно выполнить следующую команду в терминале:

sudo apt-get install docker-compose

Использование Docker для установки WordPress

Теперь, когда мы знаем, что такое Docker и он у нас установлен, мы можем приступить к его использованию для установки WordPress.

  • Первый шаг создать каталог называется, например, WordPress (Я знаю, очень оригинально) в корневом каталоге с помощью следующей команды:
  • Затем внутри этого каталога мы должны создать файл называемый докер-compose.yml, что мы можем сделать, перейдя в созданный каталог и затем создав нужный файл, то есть выполнив:
  • Файл докер-compose.yml должен иметь следующее содержание:

wordpress:
изображение: wordpress
слева направо:
- wordpress_db: mysql
порты:
- 8080: 80
объемы:
-

/ wordpress / wp_html: / var / www / html
wordpress_db:
изображение: mariadb
Окружающая среда:
MYSQL_ROOT_PASSWORD: examplepass
phpmyadmin:
изображение: corbinu / docker-phpmyadmin
слева направо:
- wordpress_db: mysql
порты:
- 8181: 80
Окружающая среда:
MYSQL_USERNAME: корень
MYSQL_ROOT_PASSWORD: examplepass

ПРИМЕЧАНИЕ. Вы можете вручную скопировать и вставить содержимое файла или, наоборот, скопировать его, выполнив:

  • Последний шаг - запустить Docker, что мы легко можем сделать, запустив:

Теперь вам просто нужно открыть свой браузер (Firefox, Chromium или Chrome) и перейти в локальный: 8080 через верхнее текстовое поле. И это все! Легко, правда?

В заключение мы хотим напомнить вам о том, что мы сделали. Во-первых, у нас есть установлен докер, инструмент, который помогает нам упаковать программный проект в контейнеры, чтобы легко перенести его в любую систему. Ниже у нас есть создал файл докер-compose.yml с Требуется конфигурация WordPress, чтобы наконец запустить Docker. Мы надеемся, что этот пост помог вам установить WordPress на вашем Ubuntu и что, если у вас есть какие-либо вопросы, оставьте их в разделе комментариев. До следующего раза 😉

Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Полный путь к статье: Убунлог » ПО » Установите WordPress на Ubuntu за три простых шага с помощью Docker

Разработка приложений сегодня требует большего, чем написание кода. Большое разнообразие языков, фреймворков, архитектур и несвязанные интерфейсы между инструментами создают сложности на каждом этапе жизненного цикла. Docker упрощает и ускоряет ваш рабочий процесс, предоставляя разработчикам свободу для инноваций, выбирая инструменты, стеки приложений и среды развертывания для каждого проекта.

Установку Docker весьма удобно выполнить при инсталляции Ubuntu Server 20.04.2 LTS (Focal Fossa) от 04.02.2021 г. Ранее установка Docker на существующую Ubuntu уже была описана в статье Установка Docker на Ubuntu.

Установка Docker при установке Ubuntu Server

Выбор установки Docker при установке Ubuntu

При выборе Docker нажимаю клавишу Enter для просмотра подробностей.

Установка Docker на Ubuntu

Из интересного, нам показывается как можно запускать Docker без использования sudo.

Запуск Docker без sudo

Выбираю клавишами курсора версию stable и нажимаю Закрыть.

Запуск Docker

После перезагрузки ввожу команду

чтобы уточнить какая версия Docker установлена.

Узнать версию Docker

Версия отражается в выводе, но информация командой предоставлена не полностью. Внизу вывода говорится о том, что с правами обычного пользователя невозможно подключиться к сокету Docker демона. Что ж, введу ту же команду, но с sudo.

Узнать версию Docker с sudo

Вспоминаю, что при установке Docker на Ubuntu я видел предупреждение о правах. Подгляжу на скриншот, сделанный ранее и спишу с него команды

Как вы могли догадаться, us - это имя моего пользователя.

При установке Docker на Ubuntu под этими командами было предупреждение о том, что, таким образом, мы делаем дырку в безопасности нашей операционной системе. Подробнее об уязвимости можно прочитать в официальной документации. Docker daemon attack surface

Установка Docker на Ubuntu. Добавление пользователя в группу docker

Чтобы убедиться, что искомый результат достигнут, еще раз узнаю версию Docker без ввода sudo. Как и ожидалось, результат был выведен полный и без предупреждений.

Выполню еще две команды для продолжения проверки корректности установки Docker.

Установка Docker на Ubuntu. Версии компонентов Docker

Команды выполнились без ошибок, установка Docker на Ubuntu прошла успешно, следовательно, Docker готов к работе. Однако, необходимо еще проверить корректность работы Docker. Для этого, ввожу самую распространенную команду в языках программирования.

Установка Docker на Ubuntu. Docker Hello, world!

Теперь, когда установка Docker на Ubuntu завершена, перейдем к установке WordPress.

Вариант 1. Установка WordPress на Docker с помощью Docker Hub

Существует центральный репозиторий - Docker Hub - самая большая в мире библиотека образов контейнеров. В левом верхнем углу сайта есть поле поиска, в которое я ввел название нужного образа. В итоге, я выбрал официальный образ WordPress.

WordPress - бесплатный инструмент для создания блогов и CMS (content management system - система управления контентом). Имеет открытый исходный код. WordPress основан на PHP и MySQL, запускающихся на сервисах веб-хостинга. Поддерживает плагины и шаблоны. WordPress используется более чем 22.0% топовых 10 миллионов сайтов, начиная с августа 2013. WordPress является наиболее популярной блоггинговой системой, используемой в интернете более, чем 60 миллионами сайтов. Наиболее популярные языки - английский и испанский.

Справа от названия образа указана команда для его установки.

Теперь остается только запустить WordPress.

Вариант 2. Установка WordPress на Docker с помощью Docker Compose

Docker Compose — это инструмент, который упрощает развёртывание приложений, для работы которых требуется несколько контейнеров Docker.
Docker Compose позволяет выполнять команды, описываемые в файле *.yml

Для начала, нужно создать файл конфигурации для Docker на языке YAML.

Пример файла stack.yml для WordPress (отступы - это пробелы):

Установка Docker на Ubuntu. Конфигурационный файл для Docker compose

Запуск Docker compose

Запуск WordPress

Запуск WordPress на Docker

Проверим запущенные контейнеры

Установка Docker на Ubuntu. Просмотр запущенных контейнеров в Docker

Как видно на скриншоте, запущен образ wordpress с именем some-wordpress на порту 8080/TCP.

Для этой цели я установил консольный веб-браузер lynx

sudo apt install lynx

Установка Docker на Ubuntu. Запуск WordPress на Docker в Ubuntu

Далее идет настройка, которая является темой отдельной статьи

Установка Docker на Ubuntu. Настройка WordPress

Также, можно открыть эту страницу, обратившись к серверу с клиентской операционной системы

Читайте также: