Докеризация Wordpress на Nginx и PHP-FPM под Ubuntu 16.04

Docker-Compose- это средство командной строки для определения и управления Multi-контейнером и docker-контейнерами как единой системой. Compose написан на Python и может быть установлен командой Python pip. Благодаря Compose , мы можем запустить несколько контейнеров docker с помощью одной команды. Это позволяет создать контейнер в качестве сервиса, который отлично подходит для разработки, тестирования и промежуточной среды.

В этой статье вы узнаете как использовать Docker-Compose. Мы развернем ' Wordpress ' в nginx, MySQL и PHP- FPM. Каждая служба имеет свой собственный контейнер, и мы будем использовать изображения из докер-концентратрирующего реестра. Я покажу вам, как создать контейнер из docker образов и управлять всеми контейнеров с Docker-Compose.

Особенности: В Ubuntu 16.04 Права Root

Шаг 1 – Установка Докера

Мы начнем с нуля, устанавливаем Docker-Compose вручную с помощью команды apt.

Прежде чем мы начнем, обновление репозитория Ubuntu,следует установить последние обновления:

 sudo apt-get update
sudo apt-get upgrade 

Настройка репозитория Ubuntu доступна по умолчанию, поэтому мы можем продолжить его установку прямо сейчас:

 sudo apt-get install -y docker.io 

Когда установка завершится, запустите настройки и добавьте его в автоматический запуск при загрузке:

 systemctl start docker
systemctl enable docker 

<Теперь проверьте установленные настройки с помощью команды ниже: /p>

docker run hello-world 

Вы увидите привет-мир от докера.

Шаг 2 - Установка Docker-Compose

Docker-Compose – это текст, написанный на языке Python, он доступен на PyPI репозиторие Python и может быть установлен с помощью Python Пип. Поэтому нам нужно установить Python и Python PIP на наши системы.

 

 

Установите Python и Python-PIP-изображения:

sudo apt-get install -y python python-pip 

Далее, установите docker-compose с помощью команды pip:

pip install docker-compose 

Дождитесь завершения процесса установки. Затем проверьте установку docker-compose с помощью команды ниже:

 docker-compose -v 

Вы получили версию docker-compose.

Шаг 3 – Установка WordPress

Теперь, docker и docker-compose установлены в системе. На этом этапе, вы узнаете, как создать и настроить условия docker-compose для нашего проекта WordPress.

Мы развернем ' WordPress ' приложением PHP с nginx в качестве веб-сервера, и mariadb в качестве базы данных ,MySQL, как докер контейнер, управляемый docker-compose. Каждое приложение (WordPress, nginx и MySQL) будет работать в своем собственном контейнере,вы можете посмотреть список ниже:

- Сервера nginx: мы используем официальный docker-образ, последнюю версию 'nginx: latest':

-Wordpress: предоставляет некоторые образы docker в докер-концентраторе, мы будем использовать WordPress 4.7 с PHP-МПФ 7.0 .

- MySQL: мы будем использовать mariadb в официальном контейнере, версия.

Поэтому нам нужны 3 docker изображения из докер реестра.

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

 useradd -m -s /bin/bash hakase
passwd hakase 

Теперь добавьте пользователя в 'докер' группы, так, чтобы он мог использовать команды настройки, и перезагрузите докер услуги:

 usermod -a -G docker hakase
systemctl restart docker 

Войдите в пользователя hakase и создайте новый каталог для проекта WordPress:

 su - hakase
mkdir -p wordpress-compose
cd wordpress-compose/ 

Далее создайте новый файл под названием Docker-Compose.в формате yml', и новый каталог для проекта. Просто введите команды ниже:

 touch docker-compose.yml
mkdir -p nginx/
mkdir -p db-data/
mkdir -p logs/nginx/
mkdir -p wordpress/ 

Список файлов и каталогов проекта:

'docker-compose.yml-это конфигурационный файл,который вы должны создать ,начиная новый проект.'

- nginx/: этот каталог ,используемый для дополнительной конфигурации nginx'как виртуального хоста и т. д.

db-data/:объем/каталог данных MySQL. SQL из данных '/var/lib/mysql' не установлен в данные db-каталога.

- журналы: каталог приложения для nginx, mariadb и пхп-фпм.

- wordpress/:все wordpress файлы будут доступны в этом каталоге.

В директории nginx создайте новый файл для нашего WordPress виртуального хоста.Создайте новый файл в WordPress.conf:

vim nginx/wordpress.conf 

Вставьте конфигурацию ниже:

server {
    listen 80;
    server_name wp-hakase.co;
 
    root /var/www/html;
    index index.php;
 
    access_log /var/log/nginx/hakase-access.log;
    error_log /var/log/nginx/hakase-error.log;
 
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
 
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass wordpress:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
} 

Сохраните файл и выйдите из редактора vim.

Шаг 4 – Настройка Docker-Compose

На этом этапе мы начнем редактирование файла docker-compose.yml. Если вы хотите начать проект docker-compose, убедитесь, что вы создаете файл docker-compose.yml в первую очередь, как мы делаем это ниже.

Отредактируйте docker-compose.yml с помощью vim :

 vim docker-compose.yml 

Определите ваши услуги на первой линии, мы определим Nginx. Мы используем Nginx последней версия. Настройте сопоставление портов для порта 80 на контейнере в порт 80 на хосте. Затем настройте объемы Docker: объем конфигурации виртуального хоста Nginx, объем файлов журнала Nginx и объем корневого веб-каталога "/ Var / WWW / HTML. Контейнер Nginx связан с WordPress контейнером.

Вставьте конфигурацию ниже:

nginx:
    image: nginx:latest
    ports:
        - '80:80'
    volumes:
        - ./nginx:/etc/nginx/conf.d
        - ./logs/nginx:/var/log/nginx
        - ./wordpress:/var/www/html
    links:
        - wordpress
    restart: always 

Далее определите сервер MySQL. Мы используем изображение MariaDB, последней версии. Настройте сопоставление портов для контейнера на порт 3306 и пароль корня MySQL с переменной средой «MYSQL_ROOT_PASSWORD». Наконец. настройте объем контейнера для каталога данных MySQL.

Вставьте конфигурацию ниже:

 mysql:
    image: mariadb
    ports:
        - '3306:3306'
    volumes:
        - ./db-data:/var/lib/mysql
    environment:
        - MYSQL_ROOT_PASSWORD=aqwe123
    restart: always 

Далее мы будем настраивать службу WordPress с помощью докер изображения WordPress 4.7 с PHP-FPM 7.0. Вешаем PHP-FPM на порт 9000, подключаем том Docker для директории «/var/www/html» в каталоге хоста «Wordpress», настроим базу данных, определив переменную среду WordPress, и свяжем WordPress с MySQL.

Вставьте конфигурацию ниже:

 wordpress:
    image: wordpress:4.7.1-php7.0-fpm
    ports:
        - '9000:9000'
    volumes:
        - ./wordpress:/var/www/html
    environment:
        - WORDPRESS_DB_NAME=wpdb
        - WORDPRESS_TABLE_PREFIX=wp_
        - WORDPRESS_DB_HOST=mysql
        - WORDPRESS_DB_PASSWORD=aqwe123
    links:
        - mysql
    restart: always 

После добавления трех частей в docker-compose.yml -файл, сохраните файл и выйдите из редактора vim.

Конфигурация docker-compose готова.

Шаг 5 - запуск docker-compose

Начните создание новых контейнеров с docker-compose. Перейдите на WordPress ,составьте каталог и запустите новые контейнеры, на основе созданного нами файла.

 cd ~/wordpress-compose/
docker-compose up -d 

Вы можете увидеть результаты выполнения команды. Были созданы три контейнеры. Давайте проверим состояние контейнера с параметром ps:

 docker-compose ps 

результат показан ниже

Если вы хотите увидеть выход журнала из контейнера, вы можете использовать команды ниже:

docker-compose logs nginx
docker-compose logs mysql
docker-compose logs wordpress 

Контейнер журналов:

Примечание: Если вы видите в контейнере журнала WordPress ошибку в соединении с MySQL, игнорируйте его.

Шаг 6 - Установить WordPress

Прежде чем приступить к этому этапу, давайте проверим доступные/открытые порты в системе. Убедитесь, что есть 3 открытых порта: порт 80, 3306 и порт 9000

netstat -plntu 

Результаты приведены ниже:

Теперь откройте веб-браузер и введите URL-адрес сервера или IP-адрес.

http://serverIP/

Вы можете увидеть страницу установки WordPress. Выберите свой язык и нажмите 'продолжить'.

Заполните детали, такие как: название сайта, админа, пользователя, пароль, адрес электронной почты и нажмите кнопку 'установить WordPress'. Вы будете перенаправлены на панель администратора WordPress.

WordPress установлен с помощью docker-compose.

Шаг 7 - доступ в контейнер docker

Это является дополнительным шагом, к тому,чтобы открыть контейнер с docker-compose. Убедитесь, что все контейнеры доступны и проверьте их состояние:

 docker-compose ps 

У нас уже есть 3 контейнера, теперь мы можем попытаться войти в каждый контейнер. Войдите в первый контейнер nginx с помощью команды docker-compose.

 docker-compose exec nginx bash

nginx: имя файла в Docker-Compose yml

bash: выполнение команды в оболочке bash.

Теперь проверяем наши настройки виртуального хоста на WordPress.

 cat /etc/nginx/conf.d/wordpress.conf

Файлы доступны в контейнере.

Далее попробуйте войти в контейнер MySQL, а затем в оболочку MySQL с помощью нашего пароля на файле.

 docker-compose exec mysql bash
mysql -u root -p
TYPE MYSQL ROOT PASSWORD

Посмотреть список баз данных:

 show databases;

Вы увидите нашу базу данных WordPress.

В ' WordPress ' контейнере, вы увидите все файлы WordPress.

 docker-compose exec wordpress bash
ls -lah 

Все контейнеры доступны.

Авторизуйтесь, чтобы получить возможность оставлять комментарии
Go to top