Развертывание сервера с помощью технологии Docker Васильев П. А.
Васильев Петр Алексеевич / Vasilev Petr Alexeevich - студент, кафедра информационных технологий, Институт математики и информатики Северо-Восточный федеральный университет им. М. К. ААммосова, г. Якутск
Аннотация: в статье предлагается современное решение развертывания серверов и приложений на удаленный хост-машину.
Ключевые слова: Web - программирование, хост, развертывание сервера.
Web - разработка - это обширная тема, которая включает в себе разные технологии разработки, методов построения архитектуры приложения, а также множество инструментов. Не маловажной частью Web - разработки является его развертывание на боевом сервере, то есть на хост-машине [1]. У многих начинающих программистов складывается мнение, что разработка приложения заканчивается на самой разработке, и, как правило, они не уделяют должного внимания по настройке и поддержанию сервера.
Существует целый ряд технологий, которые позволяют легко и быстро развернуть свое приложение на сервере. Абсолютно все они предназначены для ускорения и стабилизации нагрузки. Однако в последнее время вместе с ними программисты начали использовать технологию Docker.
Docker - это свободно-распространяемая платформа для развертывания и эксплуатации приложений. Целью Docker является более быстрый и простой запуск приложений, а также легкий перенос с одного хоста в другую. Он позволяет быстрее тестировать и быстрее разрабатывать приложение. Docker - это контейнерная виртуализация, то есть легковесная платформа виртуализации, которая умеет запускать различные программы, написанные на разных языках программирования и на разных технологиях.
Docker использует архитектуру клиент (docker клиент) - сервер (docker демон). Клиент общается с так называемым демоном Docker, который берет на себя задачи создания, распределения и запуска контейнеров. Оба, клиент и сервер, могут работать в одной системе, также сервер может быть удаленной.
Docker состоит из трех компонентов:
• Образы - шаблоны только для чтения. Например, образ может содержать в себе операционную систему Ubuntu с Apache и приложением. Они предназначены для созданий контейнеров.
• Реестр - хранилище образов. Разработчик может создать свой образ либо скачать уже созданный образ из реестра Docker Hub.
• Контейнеры - создаются с образов. Можно останавливать, запускать и удалять контейнеры. В контейнерах содержится все, что нужно для работы приложения.
Образы состоят из набора уровней, а Docker использует Union File System для преобразования этих уровней в один образ. Union file system позволяет файлам и директориями из разных систем прозрачно накладываться, создавая когерентную файловую систему. Благодаря этим уровням Docker легковесен и имеет высокий уровень скорости.
Как создаются образы? Образы можно создать двумя способами - вручную и с помощью Dockerfile. Dockerfile - это файл, который содержит в себе несколько строк команд. Например,
FROM node:argon
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app/
RUN npm install
COPY . /usr/src/app
EXPOSE 8080
CMD [ "npm", "start" ]
Этот файл создает образ с операционной системой Ubuntu node Argon и настраивает приложения для запуска в порте 8080. Затем программисту требуется просто запустить этот образ, созданный Dockerfile и у него уже будет запущен работающий сервер.
Docker был разработан на языке Go и использует некоторые возможности ядра Linux. Также он использует технологию namespaces для организации изолированных рабочих пространств, которые называются контейнерами.
Литература
1. Михаэль Кофлер. Linux. Установка, настройка, администрирование. Санкт-Петербург, 2014.
I 25 I ВЕСТНИК НАУКИ И ОБРАЗОВАНИЯ № 12(24) 2016