Сборка Apache с помощью Dockerfile
LAMP Stack | Комментировать запись
Apache — это веб-сервер с открытым исходным кодом, предназначенный для размещения веб-приложений в Интернете и на локальных хостах.
Для работы Apache на рабочей станции требуется множество конфигураций.
Чтобы сократить вам работу с подобными настройками, Docker представил Dockerfile, который помогает просто и быстро создавать конфигурации.
В этом мануале мы расскажем, как создать такой файл для автоматической настройки сервера Apache.
Итак, чтобы настроить базовый веб-сервер Apache через Dockerfile, нужно выполнить следующие шаги:
- Создать каталог для всех файлов, связанных с Apache.
- Создать Dockerfile
- Собрать образ по Dockerfile и для удобства поставить метку.
- Запустить сервер Apache как контейнер.
1: Создание каталога для файлов Apache
Сначала мы создаем специальный каталог для всех файлов, связанных с Apache. Для этого используем команду mkdir.
mkdir apache_folder
2: Сборка Dockerfile
После создания каталога нужно создать в нем Dockerfile. Это можно сделать с помощью редактора vi.
vi Dockerfile
Вышеприведенная команда откроет редактор. Вставьте в появившийся файл следующий код:
FROM ubuntu RUN apt update RUN apt install –y apache2 RUN apt install –y apache2-utils RUN apt clean EXPOSE 80 CMD [“apache2ctl”, “-D”, “FOREGROUND”]
Чтобы закрыть редактор, нажмите ESC, а затем :<wq! и Enter.
3: Сборка образа Docker
Теперь давайте соберем Dockerfile с помощью команды docker build. В команде мы помечаем создаваемый образ как 1.0 и присваиваем ему индивидуальное имя (например, apache_image).
docker build -t apache_image:1.0 .
После создания образа мы должны проверить его наличие с помощью команды docker images.
Команда docker images выводит список всех образов, созданных либо извлеченных из любого публичного/частного реестра.
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE apache_image 1.0 a738dbef66ef 15 seconds ago 133MB
4: Запуск образа Docker как контейнера
После сборки образа вы можете локально запустить образ в качестве контейнера:
- Мы запускаем контейнер в автономном режиме, чтобы он постоянно работал в фоново. Для этого мы включаем флаг -d в команду docker.
- Для размещения сервера Apache применяется порт 80 (HTTP). Используйте -p 80:80, чтобы сервер работал на локальном хосте.
Таким образом, для запуска образа как контейнера команда в качестве входных данных принимает имя образа и его метку, а также ряд флагов.
docker run --name myapache -d -p 80:80 apache_image:1.0
Вы получите:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 443848c30b74 apache_image:1.0 "/docker-entrypoint.…" 7 seconds ago Up 6 seconds 0.0.0.0:80->80/tcp myapache
5: Тестирование Apache
Чтобы проверить доступность сервера Apache в системе, зайдите в любой локальный браузер и введите localhost:
Заключение
На этом настройка окончена. Если у вас возникнут какие-либо вопросы, оставляйте их в комментариях под этим мануалом.
Читайте также: Автоматическая сборка образов Docker с помощью Dockerfile
Tags: Apache, Docker, Dockerfiles