Запросить демо
Я подтверждаю свое согласие на обработку компанией КРОК моих персональных данных, указанных в форме, в целях и пределах, установленных законодательством РФ о персональных данных в рамках проводимых мероприятий в течение неопределенного срока
Дополнительные услуги
Оставить заявку
Я подтверждаю свое согласие на обработку компанией КРОК моих персональных данных, указанных в форме, в целях и пределах, установленных законодательством РФ о персональных данных в рамках проводимых мероприятий в течение неопределенного срока
Узнать стоимость
Я подтверждаю свое согласие на обработку компанией КРОК моих персональных данных, указанных в форме, в целях и пределах, установленных законодательством РФ о персональных данных в рамках проводимых мероприятий в течение неопределенного срока
Дополнительные услуги
Попробовать бесплатно
Я подтверждаю свое согласие на обработку компанией КРОК моих персональных данных, указанных в форме, в целях и пределах, установленных законодательством РФ о персональных данных в рамках проводимых мероприятий в течение неопределенного срока
Дополнительные услуги
Быть в теме

Использование Docker в облаке КРОК

15.10.2018 3 минуты 649

В последнее время контейнерная виртуализация и в частности Docker набирает все большую популярность.

Причины популярности Docker:


  • Простота настройки — включить поддержку контейнерной виртуализации на вашем персональном компьютере или ноутбуке так же легко как и на удаленном сервере
  • Быстрое развертывание приложений — контейнеры требуют меньшее количество вычислительных и дисковых ресурсов для запуска приложений, серьезно сокращая время деплоя ваших приложений
  • Переносимость приложений — после упаковки в контейнер, который не зависит от версии ядра Linux, ваше приложение может быть запущено абсолютно в любой среде виртуализации, облаке или физическом железе вне зависимости от того, кто предоставляет вам эту услугу.
  • Контроль версий — ваши контейнеры или контейнеры поставщиков других решений имеют версии, которые позволят вам отслеживать изменения и откатываться на предыдущие версии при необходимости
  • Увеличение продуктивности — использование этой технологии позволяет существенно сократить время, затрачиваемое на создание, модификацию или поддержку ваших приложений

Для того, чтобы начать пользоваться всеми преимуществами этой технологии, достаточно установить Docker на свой рабочий ноутбук или ПК, а как только ваше приложение будет готово, оно может быть легко и просто перенесено на любой хостинг, в любое Облако или на ваши физические серверы.

Установка Docker на локальной машине

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



Т.к. Docker — это контейнерная виртуализация, работающая поверх Linux ядра, то пользователям OS X и Windows дополнительно придется установить VirtualBox — бесплатный гипервизор, развиваемый компанией Oracle, в котором будет запущена специальная виртуальная машина, внутри которой и будут работать ваши контейнеры.

Запуск виртуальных машин в облаке

Running-Docker-at-CROC-Cloud.png

В качестве демонстрации я буду использовать Виртуальный Дата-центр КРОК, предоставляющий все основные инфраструктурные (IaaS) сервисы в российской облачной платформе, совместимой с облачной платформой Amazon такие как: EC2, VPC, S3 и т.д. Я привык использовать отдельное виртуальное частное облако (VPC) для каждой отдельной инфраструктуры, предназначенной для решения отдельной задачи, поэтому рекомендую вам поступить так же и под эту задачу создать новый VPC. Внутри вашего нового VPC также нужно:


  • Создать виртуальную сеть (адресацию можно использовать произвольную, т.е. удобную вам)
  • Запустить виртуальный сервер из образа Ubuntu-16.04 нужного вам размера (выбирается исходя из требований вашего конечного приложения, но для теста более чем достаточно m1.small
  • Разрешить правила межсетевого экрана для виртуальной сети, к которой подключен запущенный вами виртуальный сервер:
    • tcp/22
    • tcp/2376

После запуска нового виртуального сервера в нашем облаке можно установить на него Docker Machine очень легко



$ docker-machine create -d generic --generic-ssh-user ubuntu --generic-ssh-key ~/.ssh/id_rsa --generic-ip-address 'внешний IP вашей ВМ, например, 185.12.29.107' c2-docker-sanbox

Пример полной команды будет выглядеть так:



$  docker-machine create -d generic --generic-ssh-user ubuntu --generic-ssh-key ~/.ssh/id_rsa --generic-ip-address 185.12.29.107 c2-docker-sanbox

Данная команда переименует вашу виртуальную машину в c2-docker-sanbox и в установит поддержку Docker, что позволит управлять развернутыми в нем приложениями прямо из вашей консоли.


Важно: чтобы после перезагрузки сервера использующийся внутри каждого облачного шалбона cloud-init заново не переопределил имя сервера, необходимо отредактировать файл /etc/cloud/cloud.cfg и закомментировать в нем следующие строчки:


  • set_hostname
  • update_hostname
  • update_etc_hosts

Выполнив установку Docker на одной или нескольких виртуальных машинах или физических серверах, легко получить полный список Docker машин, доступных для управления



$ docker-machine ls

NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
c2-docker-sandbox * generic Running tcp://185.12.29.107:2376 v1.12.3
default - virtualbox Running tcp://192.168.99.100:2376 v1.12.1


Или настроить свое окружение для работы с удаленной машиной



$ eval $(docker-machine env c2-docker-sanbox)

А чтобы запустить один или несколько Docker контейнеров на удаленном сервере, необходимо выполнить команду



$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c04b14da8d14: Pull complete
Digest: sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9
Status: Downloaded newer image for hello-world:latest
 
Hello from Docker!


Далее можно пользоваться любой инструкцией доступной в интернете по запуску стека ваших приложений. Также можно настроить Docker Swarm кластер для запуска групп контейнеров (сервисов) с возможностью их масштабировать. Об этом я расскажу в последующих статьях.

Сервисы упоминаемые в статье

  1. Публичное облако КРОК

Не пропустите самые важные, интересные и полезные статьи недели

Ваш e-mail успешно подписан.

Смотрите также