Развертывание сервера с помощью технологии docker

Развертывание сервера с помощью технологии 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