Как автоматически создавать и настраивать пользовательские образы докеров с помощью Dockerfile -- часть 3

Как автоматически создавать и настраивать пользовательские образы докеров с помощью Dockerfile — часть 3

В этой статье основное внимание будет уделено созданию пользовательских образов докеров на основе Ubuntu с установленным сервисом Apache. Весь процесс будет автоматизирован с использованием Dockerfile.

Как автоматически создавать и настраивать пользовательские образы докеров с помощью Dockerfile -- часть 3

Пользовательские образы докеров могут автоматически создавать текстовые файлы, называемые Dockerfiles. Dockerfiles содержат пошаговые упорядоченные инструкции или команды, используемые для создания и настройки образа Docker.

Содержание

 

Файл Dockerfile содержит различные инструкции для создания и настройки конкретного контейнера на основе ваших требований. Наиболее часто используются следующие инструкции: некоторые из них являются обязательными:

  • FROM = Обязательно в качестве первой инструкции в файле Docker. Поручает Docker извлечь базовый образ, с которого вы построите новый образ. Используйте тег, чтобы указать точный образ, с которого вы хотите произвести построение:

 

  • MAINTAINER = автор сборки образа
  • RUN = эта команда может использоваться в нескольких строках и запускать любые команды после создания образа Docker.
  • CMD = запуск любой команды при запуске образа Docker. Используйте только одну инструкцию CMD в файле Docker.
  • ENTRYPOINT = то же, что и CMD, но используется как основная команда для образа.
  • EXPOSE = инструктирует контейнер для прослушивания на сетевых портах при запуске. По умолчанию порты контейнера недоступны для хоста.
  • ENV = установка переменных среды контейнера.
  • ADD = копирование ресурсов (файлы, каталоги, в том числе файлов из URL-адресов).

 

Шаг 1. Создание или запись в репозиторий Dockerfile

1. Во-первых, давайте создадим какие-то репозитории Dockerfile, чтобы повторно использовать файлы в будущем для создания других образов. Создайте пустой каталог где-нибудь в разделе /​​var, где мы создадим файл с инструкциями, которые будут использоваться для создания новых пользовательских образов Docker.

 

Create-Dockerfile-Repository

 

 

2. Затем начните редактирование файла со следующими инструкциями:

 

Выдержка из Dokerfile:

 

Как автоматически создавать и настраивать пользовательские образы докеров с помощью Dockerfile -- часть 3

 

 

Теперь давайте рассмотрим инструкции файла:

Первая строка говорит нам, что мы строим образ Ubuntu. Если тег не указан, “14:10“, например, используется последний образ из Docker Hub.

Во второй строке мы добавили имя и адрес электронной почты создателя образа. Следующие две строки RUN будут выполняться в контейнере при создании образа и будут запускаться демоны Apache и эхо-текст, который будет отображаться на веб-странице apache по умолчанию.

Строка EXPOSE указывает контейнеру Docker прослушивать порт 80, но порт не будет открыт для внешнего доступа. Последняя строка указывает контейнеру запустить службу Apache как основную после запуска контейнера.

3. Последнее, что нам нужно сделать, это начать создание образа, выпустив следующую команду, которая будет локально создавать новый образ Docker с именем ubuntu-apache на основе ранее созданного файла Docker, как показано в этом примере:

 

Create-Docker-Image

 

 

4. После того, как образ Docker был создан, вы можете просмотреть все доступные образы и определить свой образ, выполнив следующую команду:

 

Как автоматически создавать и настраивать пользовательские образы докеров с помощью Dockerfile -- часть 3

 

 

Шаг 2. Запуск контейнера и доступ к Apache из локальной сети.

5. Для непрерывного запуска контейнера (в фоновом режиме) и доступа к контейнерам, открываемым службами (портами) с хоста или другого удаленного компьютера в вашей локальной сети, выполните приведенную ниже команду в командной строке хоста:

 

Как автоматически создавать и настраивать пользовательские образы докеров с помощью Dockerfile -- часть 3

 

 

Здесь опция -d запускает контейнер ubuntu-apache в фоновом режиме (как демон), а параметр -p сопоставляет порт контейнера 80 с вашим портом-узлом 81. Доступ к локальной сети через Apache возможен только через порт 81.

Подсказка. Команда Netstat даст вам представление о том, какие порты прослушивает хост.

После запуска контейнера вы также можете запустить команду docker ps для просмотра состояния запущенного контейнера.

6. Веб-страница может быть отображена на вашем хосте прямо из командной строки с использованием функции curl для вашего локального IP-адреса или интерфейса Docker вашего компьютера на порту 81. Используйте команду ip для отображения IP-адресов сетевого интерфейса.

 

Check-Docker-Network-Interface-and-IP-Address

 

 

Check-Docker-Apache-Webpage

 

 

7. Чтобы посетить веб-страницу контейнера из своей сети, удаленно откройте браузер и используйте HTTP-протокол и IP-адрес машины, на которой работает контейнер, а затем порт 81, как показано на скриншоте ниже.

 

Как автоматически создавать и настраивать пользовательские образы докеров с помощью Dockerfile -- часть 3

 

 

8. Чтобы получить доступ внутрь процессов, запущенных в контейнере, выполните следующую команду:

 

Check-Running-Docker-Processes

 

 

9. Чтобы остановить контейнер, выполните команду docker stop за которой следует идентификатор или имя контейнера.

 

10. Если вы хотите назначить уникальное имя для контейнера, используйте параметр -name, как показано в следующем примере:

 

Give-Docker-Container-Name

 

 

Теперь вы можете ссылаться на контейнер для манипуляций (start, stop, top, stats и т.д.) только с помощью назначенного имени.

 

Monitor-Docker-Container-Utilization

 

 

Шаг 3. Создание общесистемного файла конфигурации для контейнера Docker

11. В CentOS / RHEL 7 вы можете создать файл конфигурации systemd и управлять контейнером, как обычно, для любой другой локальной службы.

Например, создайте новый файл systemd, скажем, apache-docker.service, используя следующую команду:

 

Фрагмент файла apache-docker.service:

 

12. Закончив редактирование файла, закройте его, перезагрузите демона systemd, чтобы отобразить изменения и запустить контейнер, выпустив следующие команды:

 

Это был простой пример того, что вы можете сделать с помощью Dockerfile, также вы можете предварительно создавать довольно сложные приложения, которые вы можете запускать за считанные секунды с минимальными ресурсами и усилиями.

 

 

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University.

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Поиск по сайту
Лучшее
Популярное
Рубрики
Меню