Мы уже знаем как использовать Dockerfile для сборки собственных пользовательских образов. Теперь давайте рассмотрим способы создания своего образа веб-сервера, который можно использовать для создания контейнеров.
Для сборки нашего образа мы собираемся использовать веб-сервер Apache на операционной системе Ubuntu.
Шаг 1. Первым делом нам необходимо собрать наш Dockerfile. Воспользуемся любым текстовым редактором и создадим Dockerfile со следующим содержимым:
FROM ubuntu
RUN apt-get update
RUN apt-get install –y apache2
RUN apt-get install –y apache2-utils
RUN apt-get clean
EXPOSE 80 CMD [“apache2ctl”, “-D”, “FOREGROUND”]
Обратим внимание на следующие моменты:
- Сначала мы создаем наш образ из базового образа Ubuntu.
- Далее мы собираемся использовать команду RUN для обновления всех пакетов в системе Ubuntu.
- Далее мы используем команду RUN для установки apache2 на наш образ.
- Затем мы используем команду RUN для установки необходимых пакетов apache2 для нашего образа.
- После чего мы используем команду RUN для очистки любых ненужных файлов из системы.
- Команда EXPOSE используется для предоставления порта 80 Apache в контейнере хосту Docker.
- Наконец, команда CMD используется для запуска apache2 в фоновом режиме.
Теперь, когда данные файла введены, просто сохраните его.
Шаг 2. Запустите команду Docker build для сборки Dockerfile. Сделать это можно при помощи следующего запроса:
sudo docker build –t=”mywebserver” .
Мы обозначаем наш образ как mywebserver. Когда образ будет собран, вы получите сообщение о том, что файл успешно создан.
Шаг 3. Теперь, когда файл веб-сервера собран, настало время создать контейнер из образа. Сделать мы это можем при помощи команды Docker run:
sudo docker run –d –p 80:80 mywebserver
Проясним некоторые моменты вызова команды run:
- Номер порта, предоставляемый контейнером, — 80. Следовательно, с помощью оператора –p мы сопоставляем этот номер порта с номером порта 80 на нашем локальном хосте.
- Параметр –d используется для запуска контейнера в обособленном режиме. За счёт этого контейнер сможет работать в фоновом режиме.
Если вы перейдете на порт 80 хоста Docker в своем веб-браузере, то увидите, что Apache запущен и работает.