Как система виртуализации, Докер достаточно легковесен, и на уровне ОС обеспечивает решение для виртуализации. Не нужно иметь какого-либо серьёзного ПО для виртуализации (таких как VirtualBox, Xen или VMware и т. д.,) чтобы проверить и развернуть несколько операционных систем.
С помощью docker можно быстро разворачивать стеки LAMP или LEMP, легко запуская готовый образ LAMP или LAMP. Делая все это в ручную, вы безусловно усложните себе процесс установки Apache, СУБД MySQL/mariadb и программных РНР по одному. Допустим, вы Разработчик/тестер или любой случайный энтузиаст программного обеспечения, и вы хотите, проверить веб-приложения. Чтобы проверить веб-приложение, вы должны установить Apache/nginx и СУБД MySQL/mariadb и РНР (это то, что мы называем 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] 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 из Докер-концентраторов, где размещены тысячи самых популярных образов.
Скачайте образ, выберите Настройки, чтобы просмотреть дополнительные детали, такие как: установка и как ими пользоваться.
Все загруженные изображения будут сохранены локально в файле /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, запустите их с помощью команды:
$ docker run -it nickistre/ubuntu-lamp /bin/bash
После выполнения указанной выше команды, вы сможете автоматически войти в корневой веб каталог пользователя root.
root@robocop:/#
Запустите службу Apache с помощью команды:
# service apache2 start
Затем, сервис MySQL с помощью команды:
# service mysql start
Нужно проверить работает ли сервис Apache. Чтобы сделать это, откройте веб-браузер и перейдите по ссылке http://container_IP/. Вы должны увидеть тестовую страницу-сервера Apache.
Чтобы найти IP-адреса, просто введите ‘ifconfig’ или ‘ip -a’ в контейнерном терминале.
Работа с терминалом контейнера очень проста, синтаксис следующий: docker exec -it <mycontainer> bash
Например, слёту узнаём информацию об адресе: docker exec -it d2d4a89abee9 ip addr
А можно зайти в терминал контейнера и выполнять более сложную последовательность команд:
$ docker exec -it web sh
/ # echo This is inside the container.
This is inside the container.
/ # exit
$
Вы можете проверить версию Apache, MySQL и PHP с помощью команды:
# apache2 –v # mysql –v # php -v
Стек Lamp в Ubuntu развернут. Теперь, вы можете начать разворачивать и тестировать веб-приложения.
Примечание для новичков :
Используйте docker для тестирования и разработки. Кроме того, не путайте Докер с другими средствами виртуализации. Докер не будет разворачивать Lamp-стеки или любые другие приложения непосредственно на вашей хост-системе. Чем именно будет заниматься докер:
1) установка гостевой ОС (мы называем его "контейнер")
2) разворачивание стек Lamp внутри гостевой ОС. Технически, это то же самое, что и другие технологии виртуализации, но главным отличием являются методы виртуализации, такие как VirtualBox, KVM и VMware, гостевые системы (контейнеры), использование ядра хост-системы. Все гости будут эффективно совместно использовать ресурсы, такие как ЦП, ОЗУ, HDD, сети и т.д. вашего оригинального хост-компьютера.
Дискуссия
Написал Rocky 9
Опубликовано в: Установка nginx c PHP-FPM под CentOS 7.0 in LinuxНаписал Константин
Опубликовано в: Докеризация стека LEMP под Ubuntu c помощью Compose in LinuxНаписал bammbr
Опубликовано в: Шлюз для маленького отдела на Red Hat 9 in LinuxНаписал Федор
Опубликовано в: Установка и конфигурация Samba на CentOS 7 in LinuxНаписал Evgenytrl
Опубликовано в: Загрузка файлов с помощью Wget in Linux