Play with Docker — онлайн-сервис для практического знакомства с Docker



    В конце прошлого года два капитана Docker представили свою разработку под названием Play with Docker (PWD) — «игровую площадку для Docker». Пользователям предлагается бесплатно поработать со сборкой и запуском Docker-контейнеров прямо в веб-браузере, а также выполнить лабораторные работы для знакомства с Docker с нуля и совершенствования своих навыков.

    Игровая площадка


    Основной сайт сервиса — play-with-docker.com, который после прохождения CAPTCHA пересылает на один из облачных хостов, где стартует 4-часовая сессия «игровой площадки» (playground). В ней вы можете создавать новые сущности (instances), т.е. узлы тестового Docker-кластера. Каждый из них — это инсталляция легковесного дистрибутива Alpine Linux (на данный момент версии 3.6.2 с ядром Linux 4.4.0) с редактируемым локальным IP-адресом. В них установлен Docker актуальной версии 17.06 Community Edition.

    Вся работа происходит прямо в веб-браузере:



    Для эмуляции терминала используется JavaScript-реализация xterm.js от SourceLair, которая поддерживает множество современных браузеров (Chrome 48+, Edge 13+, Firefox 44+, Internet Explorer 11+, Opera 35+, Safari 8+). Терминал весьма удобен в работе, поддерживает стандартные клавиатурные сочетания, автодополнение по <TAB> — в том числе и для команд/аргументов консольной команды docker.

    Количество создаваемых сущностей ограничено пятью. А помимо стандартного образа системы со стабильным Docker можно выбрать и dev-вариант (сейчас он на базе Docker 17.07.0 CE RC1), и специальный образ с решением для управления кластерами UCP (Universal Control Plane), что означает наличие соответствующих образов (docker/ucp, docker/ucp-agent, docker/ucp-auth, docker/ucp-swarm…) для запуска в контейнерах:

    [node4] (local) root@10.0.7.6 ~
    $ docker run --privileged docker/ucp<TAB>
    docker/ucp                   docker/ucp-controller:2.1.5
    docker/ucp-agent             docker/ucp-dsinfo
    docker/ucp-agent:2.1.5       docker/ucp-dsinfo:2.1.5
    docker/ucp-auth              docker/ucp-etcd
    docker/ucp-auth-store        docker/ucp-etcd:2.1.5
    docker/ucp-auth-store:2.1.5  docker/ucp-hrm
    docker/ucp-auth:2.1.5        docker/ucp-hrm:2.1.5
    docker/ucp-cfssl             docker/ucp-metrics
    docker/ucp-cfssl:2.1.5       docker/ucp-metrics:2.1.5
    docker/ucp-compose           docker/ucp-swarm
    docker/ucp-compose:2.1.5     docker/ucp-swarm:2.1.5
    docker/ucp-controller        docker/ucp:2.1.5
    

    К слову о кластерах: в рамках вашей тестовой инсталяции на Play with Docker можно сделать и кластер с Docker Swarm. Последовательность действий для этого будет выглядеть примерно так:

    # На первом узле кластера, который станет менеджером:
    [node1] (local) root@10.0.7.3 ~
    $ docker swarm init --advertise-addr 10.0.7.3
    Swarm initialized: current node (txh3ffph72xarxjeg9gmpra2s) is now a manager.
    
    To add a worker to this swarm, run the following command:
    
        docker swarm join --token SWMTKN-1-698vpn9u804ik4xdc9by60ytdabx3kuzyxj3vzhtr74qvkdlja-7xa6pwit58xzun989tao2nis7 10.0.7.3:2377
    
    To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
    [node1] (local) root@10.0.7.3 ~
    $ docker node ls
    ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS
    txh3ffph72xarxjeg9gmpra2s *   node1               Ready               Active              Leader
    
    # Теперь перейдите к консоли другого узла (например, node2)
    [node2] (local) root@10.0.7.4 ~
    $ docker swarm join --token SWMTKN-1-698vpn9u804ik4xdc9by60ytdabx3kuzyxj3vzhtr74qvkdlja-7xa6pwit58xzun989tao2nis7 10.0.7.3:2377
    This node joined a swarm as a worker.
    
    # Вернитесь к консоли первого узла (он является менеджером кластера)
    [node1] (local) root@10.0.7.3 ~
    $ docker node ls
    ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS
    szx0qqvj5zwt6a4nho9an54yx     node2               Ready               Active
    txh3ffph72xarxjeg9gmpra2s *   node1               Ready               Active              Leader

    Более подробную пошаговую инструкцию по работе с Docker Swarm в рамках Play with Docker можно найти в этом видео (на английском языке).

    А чтобы начинающим пользователям Docker было проще и лучше понять, чем же вообще можно (и полезно) заниматься в игровой площадке Docker, авторы Play with Docker дополнили свой сервис удобным ресурсом по обучению.

    Обучение в PWD


    Обучаться работе с Docker предлагается в формате лабораторных работ, которые опубликованы по адресу training.play-with-docker.com.

    Сделаны они как пошаговые инструкции с пояснениями + запускаемый в сервисе Play with Docker эмулятор терминала, где вы можете исполнять предлагаемые инструкции (команды даже необязательно полностью вводить — достаточно кликать на листинги из описания слева, и они копируются/выполняются на терминале справа):



    Главная страница лабораторных Play with Docker предлагает два гида:

    1. Эксплуатация (Ops) — начало работы с Docker для ИТ-специалистов и системных администраторов: первое знакомство с Docker, его основными концепциями и возможностями; более глубокое изучение особенностей Docker (архитектура, интеграция с имеющейся инфраструктурой); использование в production;
    2. Разработка (Dev) — начало работы с Docker для разработчиков: базовые концепции Docker и как в нём собирать/деплоить простые приложения; работа с реестрами образов и применение в непрерывной интеграции; деплой в staging, управление Docker Swarm, безопасность приложений.

    Всего же готовых лабораторных работ больше, а полный их список с разбивкой по уровню сложности приводится на отдельной странице.

    PWD как Open Source


    Замечательный факт про Play with Docker — публикация его исходных кодов на GitHub под свободной лицензией MIT и открытость авторов к модификациям от сообщества. В описании репозитория проекта так и говорится: «Вы знаете PWD, вы используете его — время улучшать!»

    Это также означает, что вы можете запустить локальную версию Play with Docker для проведения всех нужных экспериментов на своих ресурсах. Инсталляция требует Docker 1.13+ и Go 1.7.1+. Технически для запуска сервиса используется возможность DIND (Docker-in-Docker), позволяющая запускать Docker внутри Docker. Для этого по умолчанию используется готовый образ от разработчиков (franela/dind), но при желании его можно модифицировать (использовать свой базовый образ).

    Развитие


    На апрельском DockerCon в рамках сессии Moby Cool Hack авторы Play with Docker представляли своё детище (доступно видео).

    Там же они рассказывали о некоторых новых возможностях PWD:

    1. Драйвер для Docker Machine, позволяющий управлять PWD-хостами через терминал и подключаться к ним через SSH.
    2. Функция загрузки файлов с локального компьютера простым drag-n-drop в открытый терминал PWD в веб-браузере (предназначено для Dockerfile).
    3. Шаблоны для сессий, позволяющие развернуть Swarm-кластер из 5 узлов буквально за несколько секунд.
    4. Расширение для Chrome «Play with Docker», добавляющее кнопку «Try in PWD» для запуска популярных образов из DockerHub в этом онлайн-окружении, а также возможность встраивать подобную кнопку на своих сайтах (для своих образов):



    5. Новые лабораторные работы на ресурсе обучения (включая работу с multi-stage builds, которые появились в Docker 17.06).
    • +39
    • 35,2k
    • 6

    Флант

    324,41

    Специалисты по DevOps и высоким нагрузкам в вебе

    Поделиться публикацией
    Комментарии 6
      +1
      Хорошо лежит
        +1
        UPD: мне тут подсказали, что с http работает: http://play-with-docker.com/ (в статье ссылку тоже поправил).
        0
        А суслик жив? или хабраэффект испытал?
          0
          Утром (незадолго до публикации) исправно работал. Похоже на хабраэффект.

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

      Самое читаемое