- PVSM.RU - https://www.pvsm.ru -
В конце прошлого года два капитана Docker [1] представили [2] свою разработку под названием Play with Docker (PWD) — «игровую площадку для Docker». Пользователям предлагается бесплатно поработать со сборкой и запуском Docker-контейнеров прямо в веб-браузере, а также выполнить лабораторные работы для знакомства с Docker с нуля и совершенствования своих навыков.
Основной сайт сервиса — play-with-docker.com [3], который после прохождения CAPTCHA пересылает на один из облачных хостов, где стартует 4-часовая сессия «игровой площадки» (playground). В ней вы можете создавать новые сущности (instances), т.е. узлы тестового Docker-кластера. Каждый из них — это инсталляция легковесного дистрибутива Alpine Linux (на данный момент версии 3.6.2 с ядром Linux 4.4.0) с редактируемым локальным IP-адресом. В них установлен Docker актуальной версии 17.06 Community Edition [4].
Вся работа происходит прямо в веб-браузере:
Для эмуляции терминала используется JavaScript-реализация xterm.js [5] от 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 [6]), что означает наличие соответствующих образов (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 можно найти в этом видео [7] (на английском языке).
А чтобы начинающим пользователям Docker было проще и лучше понять, чем же вообще можно (и полезно) заниматься в игровой площадке Docker, авторы Play with Docker дополнили свой сервис удобным ресурсом по обучению.
Обучаться работе с Docker предлагается в формате лабораторных работ, которые опубликованы по адресу training.play-with-docker.com [8].
Сделаны они как пошаговые инструкции с пояснениями + запускаемый в сервисе Play with Docker эмулятор терминала, где вы можете исполнять предлагаемые инструкции (команды даже необязательно полностью вводить — достаточно кликать на листинги из описания слева, и они копируются/выполняются на терминале справа):
Главная страница лабораторных Play with Docker предлагает два гида:
Всего же готовых лабораторных работ больше, а полный их список с разбивкой по уровню сложности приводится на отдельной странице [11].
Замечательный факт про Play with Docker — публикация его исходных кодов на GitHub [12] под свободной лицензией 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 представляли своё детище (доступно видео [13]).
Там же они рассказывали [14] о некоторых новых возможностях PWD:
Dockerfile
).Автор: Флант
Источник [17]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/obuchenie/261414
Ссылки в тексте:
[1] капитана Docker: https://www.docker.com/community/docker-captains
[2] представили: https://blog.docker.com/2016/12/global-mentor-week-thank-docker-community/
[3] play-with-docker.com: https://play-with-docker.com/
[4] 17.06 Community Edition: https://habrahabr.ru/company/flant/blog/332160/
[5] xterm.js: https://github.com/sourcelair/xterm.js
[6] Universal Control Plane: https://docs.docker.com/datacenter/ucp/2.1/guides/architecture/
[7] этом видео: https://www.youtube.com/watch?v=bGYAkFGkUws
[8] training.play-with-docker.com: http://training.play-with-docker.com/
[9] Эксплуатация: http://training.play-with-docker.com/ops-landing/
[10] Разработка: http://training.play-with-docker.com/dev-landing/
[11] отдельной странице: http://training.play-with-docker.com/alacart/
[12] GitHub: https://github.com/play-with-docker/play-with-docker
[13] видео: https://www.youtube.com/watch?v=-h2VTE9WnZs
[14] рассказывали: https://blog.docker.com/2017/07/best-way-learn-docker-free-play-docker-pwd/
[15] Play with Docker: https://chrome.google.com/webstore/detail/play-with-docker/kibbhpioncdhmamhflnnmfonadknnoan
[16] работу с multi-stage builds: http://training.play-with-docker.com/multi-stage/
[17] Источник: https://habrahabr.ru/post/334470/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.