Прочитав название данной статьи, вы могли бы задаться вопросом, почему мы должны привести в действие LAMP и LEMP стеки, используя Докер? Почему мы не можем просто установить их вручную? Настройка LAMP и LEMP стека очень проста, тогда почему мы должны усложнять работу с Docker? Позвольте мне ответить на Ваши вопросы. Привести манипуляцию в стеке LAMP, используя docker, гораздо легче, чем вручную устанавливать их.

Зачем нужно разворачивать LAMP-стеки, используя Докер?

Как вы, наверное, знаете, Докер имеет маленький вес, и на уровне ОС обеспечивает решение для виртуализации. Вам не нужно каких-либо программных обеспечений для виртуализации, (таких как VirtualBox, базе Xen или VMware и т. д.,) чтобы проверить и развернуть несколько операционных систем. Для получения более подробной информации о установке ,настройке и использовании, пожалуйста, перейдите по следующей ссылке.

Докер – легковесная виртуализация с Linux-Контейнерами

И зачем нам нужно разворачивать LAMP или LEMP стеки с помощью docker? Затем,что это поможет нам легко скачать и мгновенно запустить готовый LAMP или LAMP образ .Делая все это в ручную,вы безусловно усложните себе процесс установки Apache, СУБД MySQL/mariadb и программных РНР по одному. Допустим, вы Разработчик/тестер или любой случайный энтузиаст программного обеспечения, и вы хотите, проверить веб-приложения. Чтобы проверить веб-приложение, вы должны установить Apache/nginx и СУБД MySQL/mariadb и РНР (это то, что мы называем LAMP или LAMP стеки). Это очень трудоемкий процесс. Вот здесь Докер приходит на помощь.

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

Теперь, перейдем к теме. Эта статья покажет вам, как развернуть LAMP или LAMP стеки с помощью docker.

Развертывание LAMP / LAMP стеков, используя Докер

После установки настроек , как описано выше в ссылке, воспользуйтесь поиском готовых LAMP / LAMP стеков.

Для этого выполните:

 $ sudo docker search lamp 

Пример вывода:

 NAME DESCRIPTION STARS OFFICIAL AUTOMATED
 reinblau/lamp Dockerfile for PHP-Projects with MySql client 17 [OK]
 dockie/lamp 6 [OK]
 nickistre/ubuntu-lamp LAMP server on Ubuntu 4 [OK]
 nickistre/ubuntu-lamp-wordpress LAMP on Ubuntu with wp-cli installed 4 [OK]
 nickistre/centos-lamp LAMP on centos setup 3 [OK]
 damienlagae/lamp Docker LAMP with supervisord 3 [OK]
 boolean93/lamp LAMP based on linode/lamp 2 [OK]
 drunomics/lamp 1 [OK]
 avatao/lamp LAMP base image 1 [OK]
 nickistre/ubuntu-lamp-xdebug LAMP on Ubuntu with xdebug installed 1 [OK]
 nickistre/centos-lamp-wordpress LAMP on CentOS setups with wp-cli installed 1 [OK]
 linuxconfig/lamp Automated build LAMP stack environment for... 1 [OK]
 greyltc/lamp a super secure, up-to-date and lightweight... 0 [OK]
 kazaoki/lamp fetching... 0 [OK]
 greyltc/lamp-gateone LAMP stack with gateone server & webdav 0 [OK]
 fauria/lamp Modern, developer friendly LAMP stack. Inc... 0 [OK]
 drunomics/lamp-memcached LAMP + Memcached base image. 0 [OK]
 rpawel/lamp Apache 2.4 + php5-fpm container 0 [OK]
 lioshi/lamp Docker image for LAMP + MySql under debian 0 [OK]
 nickistre/centos-lamp-xdebug LAMP on centos with xDebug 0 [OK]
 greyltc/lamp-aur LAMP stack (in Arch with php7) with AUR ac... 0 [OK]
 alledia/lamp General LAMP for our tests, based on phusi... 0 [OK]
 greatfox/lamp 0 [OK]
 cnrk/lamp LAMP stack Docker image. 0 [OK]
 grmanit/lamp Based on tutum/lamp with additional settin... 0 [OK]

Как вы видите из приведенного выше результата, существует много готовых LAMP стек образов, доступных для Arch Linux, в CentOS и Ubuntu. Изображения сортируются по рейтингу.

Кроме того, вы можете найти LAMP стек образы в Докер с помощью команды:

 $ sudo docker search lemp

Затем, скачаете Докер образы. Здесь, я собираюсь скачать образ  nickistre/ubuntu-lamp.

$ docker pull nickistre/ubuntu-lamp

Пример вывода:

Using default tag: latest
latest: Pulling from nickistre/ubuntu-lamp
faecf96fd5ab: Pull complete 
995977506e98: Pull complete 
efb63fb8dcb6: Pull complete 
a3ed95caeb02: Pull complete 
61626f5cc06d: Pull complete 
d42e54d21590: Pull complete 
4a32d1f581a1: Pull complete 
52f44a8dd6d0: Pull complete 
ce6c1074ae9e: Pull complete 
2fa559435609: Pull complete 
93a433221384: Pull complete 
521d09b9a2d1: Pull complete 
6222edddc59d: Pull complete 
8fa401b50efc: Pull complete 
683063a5d5e0: Pull complete 
1f87fa5088b3: Pull complete 
c5ee1c14048f: Pull complete 
Digest: sha256:e913d43c204b3cdb931156c1a680c712acfe8db531225ec7b9e4708fc7ebe93c
Status: Downloaded newer image for nickistre/ubuntu-lamp:latest 

Приведенная выше команда будет загружать LAMP стек в Ubuntu. Вы можете скачать LAMP -штабеля для других платформ, таких как CentOS, Arch Linux.

Кроме того, вы можете искать, загружать и разворачивать образы docker из Докер-концентраторов, где размещены тысячи самых популярных изображений.

Скачать docker изображения

Найдите LAMP-стек изображения и скачайте их.

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

Все загруженные изображения будут сохранены локально в файле /var/lib/docker/.В списке загруженных образов docker, выполните следующую команду:

$ docker images 

Пример вывода:

REPOSITORY TAG IMAGE ID CREATED SIZE
nickistre/ubuntu-lamp latest 5e750e4f49e4 2 days ago 633 MB
reinblau/lamp latest 2813b461f843 9 days ago 697.9 MB
hello-world latest 690ed74de00f 5 months ago 960 B

После загрузки изображения,установите настройки для Lamp-стека / LAMP, запустите их с помощью команды:

 $ docker run -it nickistre/ubuntu-lamp /bin/bash

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

root@184851ac9ebd:/# 

Запустите службу Apache с помощью команды:

# service apache2 start 

Затем, сервис MySQL с помощью команды:

# service mysql start 

Нужно проверить работает ли сервис Apache. Чтобы сделать это, откройте веб-браузер и перейдите по ссылке http://container_IP/.

Чтобы найти IP-адреса, просто введите ‘ifconfig’ или ‘IP-адрес’ в Контейнерном терминале.

Вы должны увидеть тестовую страницу-сервера Apache.

Вы можете проверить версию Apache, MySQL и PHP с помощью команды:

# apache2 –v
# mysql –v
# php -v 

Стек Lamp в Ubuntu развернут. Теперь, вы можете начать разворачивать и тестировать веб-приложения.

Примечание для новичков :

Используйте docker для тестирования и разработки. Кроме того, не путайте Докер с другими средствами виртуализации. Докер не будет разворачивать Lamp-стеки или любые другие приложения непосредственно на вашей хост-системе. Чем именно будет заниматься докер: 1)установка гостевой ОС (мы называем его “контейнер”), 2) разворачивание стек Lamp внутри гостевой ОС. Технически, это то же самое, что и другие технологии виртуализации, но главным отличием являются методы виртуализации, такие как VirtualBox, KVM и VMware, гостевые системы (контейнеры), использование ядра хост-системы. Все гости будут эффективно совместно использовать ресурсы, такие как ЦП, ОЗУ, жесткого диска и сети и т. д вашего оригинального хост-компьютер. Надеюсь, вам теперь все ясно.

Removing Docker Images

Remove one or more specific images

Use the docker images command with the -a flag to locate the ID of the images you want to remove. This will show you every image, including intermediate image layers. When you’ve located the images you want to delete, you can pass their ID or tag to docker rmi:

List:

docker images -a

Remove:

docker rmi Image Image