Как настроить контейнер Apache Docker

Если вы новичок в 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 из реестра на ваш компьютер.
docker pull httpd

На скриншоте ниже показан ожидаемый результат при загрузке изображения с Docker Hub.

Pulling the Apache image from Docker Hub

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

# Проверка изображений Docker
docker images

Как видно ниже, у вас теперь есть один образ Docker, который вы загрузили с Docker Hub.

Checking the Docker images

Запуск контейнера Apache с использованием команды Docker.

В предыдущем разделе вы загрузили образ Docker из хранилища Docker Hub. Теперь вы готовы создать контейнер на основе этого образа. Чтобы запустить контейнер Apache, выполните следующую команду Docker:

1. Вызовите команду docker run, чтобы создать новый контейнер на основе загруженного образа Apache Docker.

# Запустите новый контейнер Docker с именем docker-apache (--name)
# Сопоставьте порт 80 локального компьютера с портом 80 контейнера (-p 80:80)
# В режиме отсоединения (-d)
# Используйте образ Apache
docker run -d --name docker-apache -p 80:80 -d httpd

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

Running a new Docker container using an Apache image

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

Убедитесь, что на вашем компьютере с Ubuntu 14.04.4 LTS разрешен входящий порт 80 в группе безопасности.

Accessing the Apach

3. Наконец, остановите контейнер, если вам больше не нужно, чтобы он работал, выполнив команду docker stop, представленную ниже. Эта команда корректно остановит экземпляр контейнера.

# Остановите контейнер с идентификатором aaaee64a4512. Убедитесь, что замените значение идентификатора вашим.
# Примечание: достаточно указать первые 12 символов идентификатора контейнера.
docker stop aaaee64a4512

Кроме того, вы можете также остановить работающий контейнер, указав его имя в команде docker stop (docker stop docker-apache).

Запуск контейнера Docker Apache из файла Docker

В предыдущем разделе вы узнали, как запустить контейнер Docker Apache, запустив образ Docker httpd по умолчанию. Что если вам нужно обновить базовый образ для отображения разного контента или предоставления его на другом порту?

Развертывание контейнера с использованием файла Docker позволяет избежать ручного этапа создания образа при тестировании той же конфигурации в другой ОС. Подход с использованием файла Docker – это автоматизированный сценарий образов Docker.

Давайте создадим файл Docker и запустим контейнер из него.

1. Создайте папку с именем ~/apache-server-docker-demo, затем измените (cd) текущий рабочий каталог на этот каталог.

mkdir ~/apache-server-docker-demo
cd ~/apache-server-docker-demo

2. Создайте другой файл, скопируйте/вставьте нижеуказанную конфигурацию и сохраните файл как index.html внутри директории ~/apache-server-docker-demo. Файл index.html является HTML-страницей, которая будет отображать This tutorial will teach how to Run Apache container in docker после запуска контейнера, что вы увидите позже в курсе.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>This tutorial will teach how to Run Apache container in docker .</title>
</head>
<body>
    <h1>This tutorial will teach how to Run Apache container in docker , lets GO!</h1>
</body>
</html>

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.
# Инструкция для Dockerfile для создания нового образа на основе базового образа (httpd)
FROM httpd:2.4
MAINTAINER [email protected]
COPY index.html /var/www/html/
EXPOSE 80

4. Затем убедитесь, что все необходимые файлы ниже в папке, запустив команду tree.

Verify all the required files

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

# Создание docker-образа
sudo docker build  -t apache-server:v1 .
build the image by running the docker build command

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

Repository Attributes

6. Наконец, запустите контейнер Apache с использованием только что созданного образа, выполнив команду docker run.

Флаг p публикует порт(ы) контейнера на хост, который равен 80:80. Флаг -it указывает Docker выделить псевдо-терминал, подключенный к стандартному потоку ввода контейнера.

# Запуск контейнера Apache с использованием только что созданного образа
docker run -it -p 80:80 apache-server:v1

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

verify if you can access the Apache web interface

Вывод

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

Так что вы собираетесь создать на образе Docker сервера Apache?

Source:
https://adamtheautomator.com/apache-docker/