Docker ускоряет и упрощает развертывание приложений, добавляя контейнеры. на основе предварительно настроенных изображений. Контейнеры удобны для таких приложений, как веб-серверы, которым необходимо сохранять свои конфигурации в разных веб-браузерах, целевые ОС и архитектуры CPU .
В этой статье показаны два метода развертывания веб-сервера Apache с помощью Docker.
Предварительные требования
- Экземпляр сервера под управлением Linux.
- Docker без полномочий root.
Запуск Apache Docker через образ Docker Hub
Самый простой способ установить веб-сервер Apache в Docker — запуск контейнера с использованием предварительно настроенного образа Docker Hub. Хотя эта процедура не позволяет настраивать образ для вашего развертывания, она предоставляет отличный способ протестировать веб-сервер.
Следуйте приведенным ниже инструкциям, чтобы развернуть контейнер Apache на основе образа Docker Hub.
Загрузить образ Apache для Docker
Официальный образ Apache в Docker Hub — httpd
. Загрузите образ в свою систему с помощью команды docker pull
:
docker pull httpd
В выходных данных команды отображается ход загрузки и сообщается о завершении загрузки.
Запустите контейнер Apache
Введите приведенную ниже команду docker run
, чтобы создать и запустить контейнер Docker на основе образа httpd
:
docker run -d --name [container-name] -p 80:[host-port] httpd
Команда содержит несколько параметров.
- Параметр
-d
указывает Docker запустить контейнер в отключенном режиме, т. е. в качестве фонового процесса. - Флаг
--name
позволяет указать имя контейнера. Если вы исключите этот флаг, Docker сгенерирует случайную фразу для имени. - Параметр
-p
позволяет сопоставить TCP порт80
контейнера на свободный открытый порт в хост-системе.
В следующем примере образ httpd
используется для создания и запуска контейнера с именем apache
и публикации его в порт 80
в хост-системе.
docker run -d --name apache -p 80:80 httpd
Если ошибок нет, Docker выводит идентификатор нового контейнера.
Проверить, запущен ли Apache
Протестируйте новую установку Apache, открыв веб-браузер и введя IP-адрес сервера:
http://[server-ip-address]
Можно также подключиться к установке Apache на том же компьютере, введя localhost
и порт хоста, назначенный контейнеру.
http://localhost:[host-port]
Apache отображает страницу по умолчанию, подтверждая успешное развертывание.
Примечание. Остановите запущенный контейнер Docker, введя:
docker stop [container-name-or-id]
Запуск Apache через Dockerfile
Еще один способ развернуть экземпляр Apache в Docker — использовать настроенный образ, созданный с помощью Dockerfile. Выполните следующие действия, чтобы создать образ и запустить контейнер на его основе.
Создать каталог для образа Apache
Для начала поместите весь контент, относящийся к изображению, в специальный каталог.
1. Создайте и перейдите в каталог apache
.
mkdir apache && cd apache
2. В каталоге создайте или скопируйте файлы, которые вы хотите включить в образ.
Например, добавьте новую целевую страницу, создав файл index.html
в текстовом редакторе:
nano index.html
Напишите HTML в файле.
<h1>Test</h1>
<p>This is a test page for the Apache deployment in Docker</p>
Сохраните и закройте файл.
Сборка Dockerfile
Затем создайте Dockerfile для нового образа. Dockerfile содержит все необходимые инструкции для Docker по сборке определенного образа.
1. Используйте текстовый редактор для создания файла.
nano Dockerfile
2. Напишите конфигурацию образа.
FROM httpd:latest
COPY index.html /usr/local/apache2/htdocs
EXPOSE 80
В приведенном выше примере в качестве шаблона используется последнее изображение httpd
, которое изменяется путем копирования index.html из локального каталога в < strong>/usr/local/apache2/htdocs
в образе. Кроме того, порт контейнера 80
доступен для сопоставления с портом хоста.
Сохраните файл и выйдите.
3. Используйте сборку docker для создания образа на основе Dockerfile.
Вывод показывает, что Docker применяет шаги из Dockerfile.
Запуск Apache Dockerfile как контейнера
Запустите контейнер Apache с созданным вами образом.
docker run -d --name [container-name] -p 80:[host-port] [image-name]
В приведенном ниже примере создается отдельный контейнер с именем apache
с использованием образа apache:v1
, созданного с помощью Dockerfile. Порт контейнера 80
сопоставляется с портом хоста 80
.
docker run -d --name apache -p 80:80 apache:v1
Проверьте, запущен ли Apache
Протестируйте новую установку Apache, перейдя по IP-адресу сервера в веб-браузере:
https://[server-public-ip-address]
Apache обслуживает тестовую страницу, включенную в пользовательский образ, подтверждая успешное развертывание.
Примечание. Если в браузере отображается какая-либо другая страница, кроме указанной выше, очистите кеш и перезагрузите страницу.
Заключение