Если вы новичок в Docker и контейнерах, то настройка Контейнера Docker с Apache – отличный способ начать. Создание приложения в Docker приносит огромную пользу благодаря его легковесной технологии и безопасности.
В этом руководстве вы узнаете, как настроить контейнер Docker с Apache на Ubuntu. Используйте это руководство, чтобы начать работу с Docker и в конечном итоге получить веб-сервер Apache!
Необходимые условия
Если вы хотите идти пошагово, убедитесь, что у вас есть следующее и установленный Docker на машине с Ubuntu 14.04.4 LTS или более поздней версии. В этом руководстве используется Ubuntu 18.04.5 LTS с Docker v19.03.8 и публичный IP-адрес 13.213.48.113.
Настройка контейнера Docker с Apache
Предполагая, что вы уже установили Docker, давайте сначала настроим контейнер Apache. Позже вы узнаете, как его запустить.
Один из самых простых способов быстро создать контейнер Docker с Apache – загрузить существующий образ контейнера из официального реестра Docker Docker Hub. В этом примере вы загрузите и запустите контейнер Docker под названием Apache.
С помощью нескольких команд Docker вы быстро запустите экземпляр Apache. Для этого следуйте указанным ниже шагам.
Примечание: В данном руководстве не рассматриваются подробности запуска Docker-команд. Для более подробной информации о командах Docker посетите страницу документации по командной строке Docker.
1. Откройте терминал на вашем компьютере с Ubuntu.
2. Загрузите образ Docker, содержащий Apache, названный httpd
, выполнив команду docker pull
, приведенную ниже. Эта команда загрузит образ Apache из реестра Docker, как показано ниже.
На скриншоте ниже показан ожидаемый результат при загрузке изображения с Docker Hub.

3. Затем подтвердите, что вы загрузили образ, выполнением команды docker images
для отображения списка всех доступных изображений на вашем компьютере.
Как видно ниже, у вас теперь есть один образ Docker, который вы загрузили с Docker Hub.

Запуск контейнера Apache с использованием команды Docker.
В предыдущем разделе вы загрузили образ Docker из хранилища Docker Hub. Теперь вы готовы создать контейнер на основе этого образа. Чтобы запустить контейнер Apache, выполните следующую команду Docker:
1. Вызовите команду docker run
, чтобы создать новый контейнер на основе загруженного образа Apache Docker.
Команда docker run
вернет уникальный идентификатор контейнера, который вы только что создали. Сохраните этот идентификатор контейнера в выделенном поле ниже для будущего удаления контейнера.

2. Как только контейнер Apache запущен, проверьте доступ к веб-интерфейсу Apache, перейдя по адресу Public-Ip-address:80 с использованием вашего веб-браузера. Если вы видите тот же самый текст, что и ниже, значит, вы успешно запустили свой контейнер Apache в Docker.
Убедитесь, что на вашем компьютере с Ubuntu 14.04.4 LTS разрешен входящий порт 80 в группе безопасности.

3. Наконец, остановите контейнер, если вам больше не нужно, чтобы он работал, выполнив команду docker stop
, представленную ниже. Эта команда корректно остановит экземпляр контейнера.
Кроме того, вы можете также остановить работающий контейнер, указав его имя в команде
docker stop
(docker stop docker-apache
).
Запуск контейнера Docker Apache из файла Docker
В предыдущем разделе вы узнали, как запустить контейнер Docker Apache, запустив образ Docker httpd по умолчанию. Что если вам нужно обновить базовый образ для отображения разного контента или предоставления его на другом порту?
Развертывание контейнера с использованием файла Docker позволяет избежать ручного этапа создания образа при тестировании той же конфигурации в другой ОС. Подход с использованием файла Docker – это автоматизированный сценарий образов Docker.
Давайте создадим файл Docker и запустим контейнер из него.
1. Создайте папку с именем ~/apache-server-docker-demo, затем измените (cd
) текущий рабочий каталог на этот каталог.
2. Создайте другой файл, скопируйте/вставьте нижеуказанную конфигурацию и сохраните файл как index.html внутри директории ~/apache-server-docker-demo. Файл index.html является HTML-страницей, которая будет отображать This tutorial will teach how to Run Apache container in docker после запуска контейнера, что вы увидите позже в курсе.
3. Создайте другой файл, скопируйте/вставьте нижеуказанную конфигурацию и сохраните файл как Docker file внутри директории ~/apache-server-docker-demo. После завершения Docker будет использовать этот DockerFile для выполнения всех необходимых команд для создания нового образа Docker поверх любого базового образа.
В DockerFile ниже содержатся различные шаги/инструкции, которые соберут контейнер Apache:
Maintainer
– инструкция Maintainer предоставляет информацию о авторе, который управляет этим файлом.FROM
– инструкция FROM инициализирует новый этап сборки и устанавливает базовый образ для последующих инструкций. В приведенном ниже фрагменте кодаcentos:7
является базовым образом.COPY
– команда COPY копирует файл с хост-машину (хост Docker) в контейнер. Файл ****index.html, созданный вами ранее на хосте Docker, будет скопирован в директорию контейнера /var/www/html.EXPOSE
– Инструкция EXPOSE информирует Docker о том, что контейнер слушает указанные сетевые порты во время выполнения. Веб-сервер Apache по умолчанию открывается наПорту 80
.
4. Затем убедитесь, что все необходимые файлы ниже в папке, запустив команду tree
.

5. Затем создайте образ, запустив команду docker build
. Флаг t
используется для тегирования образа apache-server
с версией v1
, и .
обозначает текущий рабочий каталог.

docker build
command При выполнении сборки Docker возвращает различные атрибуты. Вы увидите, что одним из этих атрибутов является REPOSITORY. Имя REPOSITORY – apache-server
, и образ помечен версией v1
, как показано ниже.

6. Наконец, запустите контейнер Apache с использованием только что созданного образа, выполнив команду docker run
.
Флаг p
публикует порт(ы) контейнера на хост, который равен 80:80
. Флаг -it
указывает Docker выделить псевдо-терминал, подключенный к стандартному потоку ввода контейнера.
7. Наконец, проверьте доступ к веб-интерфейсу Apache, перейдя по адресу Публичный-ip-адрес:80 в вашем веб-браузере. Вы увидите это сообщение на веб-интерфейсе, потому что вы создали файл index.html, и Docker скопировал его в контейнер при запуске.

Вывод
Этот учебник направлен на помощь вам в процессе настройки контейнера Apache Docker с использованием образов Docker. Вы узнали, как запускать контейнеры Apache с помощью файлов Docker, с помощью которых вы можете редактировать и создавать настраиваемые контейнеры по вашему выбору.
Так что вы собираетесь создать на образе Docker сервера Apache?