vendor lock in что это
Vendor lock-in наоборот, или Как поставщику отвязаться от заказчика
Д ля тех, кто не знает, «вендор лок» (Vendor lock-in, привязка к поставщику) — это такая тема, когда вы привязываетесь (в чём угодно) к закрытой технологии какого-нибудь производителя или делаете на его платформе какое-то решение, а дальше не можете с него «слезть» (статья в «Википедии»). Самый распространённый пример — использование базы данных Oracle или облака AWS (Amazon Web Services). В начале — всё может быть хорошо и радужно. Но чем дальше в лес, тем толще партизаны. И вот уже весь ваш бизнес завязан на кучу технологических решений, которые в любой момент, по желанию вендора, могут изменить своё поведение или ценовую политику. В общем, больно и неприятно. Используйте опенсорс- и «вендорагностик»-решения и всё будет хорошо. Но я не об этом.
Б ывает и обратная ситуация. Например, вы делаете решение для заказчика, оно разрастается, «крупнеет» и, как днище танкера, покрывается всякими «моллюсками» и прочими «водорослями». Со временем, эта «корка» становится настолько толстой, а «танкер» настолько неповоротливым, что вам уже вовсе не хочется поддерживать его на плаву. Даже за большие деньги. Решение устарело (а всё, чему больше года и что регулярно не апдейтилось, автоматически устаревает), допиливать новое — сложно и боязно (потому что нет тестов, лол). И так далее.
Н о выхода нет — никто, кроме вас, не умеет с этим работать. Деньги платят — надо делать.
У меня есть пара таких проектов, один из которых написан на PHP и не обновлялся уже года два (а существует 4 года). Другой — на Java+Rails. И живёт без существенных изменений два года. Я очень-очень хочу от них избавиться, но никак не могу придумать хороший способ это сделать (и ладно бы только придумать, проблема тут, как раз, заключается в «сделать»).
П о большому счёту, это, конечно же, не мои проблемы: заказчик сам должен был думать о Vendor lock-in, о рисках работы с одним и тем же исполнителем, приглашать внешних аудиторов, проявлять инициативу для повышения качества кодобазы и т. д. А у меня нет никаких договоров о пожизненной поддержке за копейки. Вдруг завтра мне окончательно всё надоест и я уеду в горы, где нет Интернета, что тогда делать?
Л ичные проблемы и комплексы не позволяют мне просто так всё бросить. Или, хотя бы, даже начать диалог о том, что я больше не хочу заниматься старыми вещами за мелкий прайс и, вообще, мне весь этот Vendor lock-in наоборот уже конкретно надоел — ищите, кого хотите, а я сваливаю в закат. Путь успешного социопата для меня, увы, неприемлем.
М ой бывший босс рассказывал похожую ситуацию: давным-давно, он — тогда руководитель собственной «шлюпки» — «напилил» проект, а потом пару лет никак не мог от него избавиться. Так что я, со своим обратным «вендор локом», не одинок.
Х орошо, когда человек честный и ответственный. А то ведь я знаю не один случай, когда такая ситуация проворачивалась в пользу исполнителя, и заказчик, из-за привязки к одному поставщику, был вынужден годами страдать и отваливать серьёзное бабло за работу над своей системой. Пока его нагло эксплуатировали.
Ч то ещё хуже — я понимаю, что для того, чтобы полностью передать все дела, заказчику нужно найти не просто одного «типа», который будет «шарить» в PHP или Java, а целую компанию, в которой будут специалисты по куче платформ, «облакам» и так далее. Мне нужно будет подобрать «хвосты», накопленные за 4 года, и, в каком-то виде, всучить решение «счастливчикам», которые подпишутся на поддержку этого софта. А подписаться на такое могут только глупцы или только за большие деньги (которые сильно удивят заказчика, потому что, работая в одиночку и зная множество вещей, я сделал всё дешевле, минимум, в 10 раз, нежели бы это делала отдельная контора, при сохранении качества).
В найме таких проблем нет. Ушёл с работы, кое-как передав дела (или не передав, ничего страшного всё равно не случится) и всё. А тут уже не так просто. Но, рано или поздно, надо будет обрубить старое. Иначе оно всё время будет тянуть назад, не давать развиваться, тормозить, жрать «мыслетопливо», отвлекать и делать множество других нехороших вещей.
Автор: Рожок.
Vendor lock-in
Материал из Anticopyright
Vendor lock-in (также «proprietary lock-in», «customer lock-in», «привязка к поставщику», «замыкание на одном поставщике», «барьер для смены поставщика») в экономике — зависимость потребителя от продуктов и сервисов одного поставщика, невозможность сменить поставщика из‑за высоких затрат на переход.
Поставщики часто намеренно создают замыкание для завоевания большой доли рынка, что иногда приводит к появлению монополии и «стандартов де-факто».
Осуждается как пример создания ситуации, когда пользователю приходится выбирать продукцию данного поставщика не из-за ее качеств, а ради минимизации своих неудобств, в т.ч. расходов. Это считается недопустимым выкручиванием рук пользователю.
Содержание
[править] Совместимость
Как естественное, так и намеренное замыкание может возникнуть в результате появления несовместимых с другими «стандартов де-факто», обеспечивать совместимость с которыми для конкурентов оказывается дорого, трудно или даже незаконно.
Иногда компании добавляют к открытым стандартам собственные расширения (как полезные, так и бесполезные или дублирующие существующие), не раскрывая их, или патентуя. Такая тактика называется Embrace, Extend, and Extinguish («Поддержать, надстроить и уничтожить»).
[править] Примеры замыкания
[править] Sony Memory Stick
Практически вся флеш-память для мобильных устройств использует форм-факторы SD, miniSD и microSD.
Флэш-память для устройств фирмы Sony использует фактор Memory Stick, не совместимый больше ни с кем. Значительная часть устройств Sony при этом не поддерживает память, отличную от Memory Stick.
[править] Фотоаппараты
В фотоаппаратах есть всего три открытых стандарта для аксессуаров: штативный винт диаметром 3/8 дюйма, горячий башмак и резьба M42. Последние два плохи тем, что они «глупы» — в них нет управления диафрагмой, фокусировкой и ведущим числом фотовспышки. Поэтому разные производители делают свои собственные форматы объективов, вспышек и пультов дистанционного спуска, и при смене производителя приходится менять все аксессуары (кроме разве что штатива).
[править] Сотовые телефоны
Сотовые телефоны всех производителей имеют разные штырьки зарядных устройств, а также аккумуляторы разных размеров и форм, с разным расположением контактов (то же самое справедливо и для радиотелефонов, портативных радиостанций и т.п.). Сделано это очевидно для того, чтобы впаривать по многу раз зарядки и аккумуляторы по несусветным ценам.
[править] Microsoft
[править] Microsoft Word
Текстовый процессор Microsoft Word в течение многих лет по умолчанию сохранял тексты в формате, описание которого можно было получить только за деньги и подписку о неразглашении, что препятствовало реализации качественной (или хотя бы такой же, как у Microsoft) поддержки этого формата в конкурирующих программах. Теперь условия доступа к описанию изменились, но возник вопрос о том, подходят ли они для свободного ПО, которое не приемлет патентных ограничений. Новые спорные условия также распространяются на новые форматы, основанные на предыдущих — сделанные стандартом ISO и Ecma несмотря на принятие незадолго до этого не менее (а возможно, и более) открытых аналогов.
Из‑за практической монополии Word среди текстовых процессоров, а следовательно, и монополии его форматов файлов, редкие пользователи могли воспользоваться для создания документов, которые требовалось передать другим, или открытия существующих (в том числе и личных), какой‐либо программой, не поддерживаемой Microsoft, и работающей на платформах, не поддерживаемых Microsoft.
[править] Атомная энергетика
Тепловыделяющие элементы (контейнеры с ядерным топливом, основа любого атомного реактора) на АЭС европейского и советского производства существенно отличаются конструкцией, вследствие чего страны, получившие в наследство советские АЭС, не могут сменить поставщика ядерного топлива и вынуждены покупать топливо у России. Вследствие этого можно наблюдать проплаченные протесты а-ля «Не допустим ввоз ядерных отходов в Россию!», которые в большинстве своем представляют собой замаскированные попытки надавить на общественное мнение с целью выделения средств на постройку атомных реакторов европейского стандарта под предлогом заботы об экологии.
Vendor lock-in
«Vendor lock-in» (также «proprietary lock-in», «customer lock-in», «привязка к поставщику», «замыкание на одном поставщике», «барьер для смены поставщика»), в экономике — зависимость потребителя от продуктов и сервисов одного поставщика, невозможность сменить поставщика из‑за высоких затрат на переход.
Поставщики заинтересованы намеренно создавать замыкание для завоевания большой доли рынка, что иногда приводит к появлению монополии и «стандартов де-факто».
Содержание
Совместимость
Как естественное, так и намеренное замыкание может возникнуть в результате появления несовместимых с другими «стандартов де-факто», обеспечивать совместимость с которыми для конкурентов оказывается дорого, трудно или невозможно по лицензионным причинам.
Иногда компании добавляют к открытым стандартам собственные расширения [1] (как полезные, так и бесполезные или дублирующие существующие), не раскрывая их или патентуя. Такая тактика называется Embrace, Extend, and Extinguish («Поддержать, надстроить и уничтожить»).
Примеры замыкания
Sony Memory Stick
Практически все мобильные устройства используют карты памяти стандарта SD, miniSD и microSD.
Устройства фирмы Sony используют флэш-память стандарта Memory Stick. Значительная часть устройств Sony при этом не поддерживает память, отличную от Memory Stick. Таким образом, купив устройство фирмы Sony, покупатель вынужден докупать к нему карты памяти, которые в среднем в полтора-два раза дороже SD и к тому же в большинстве случаев не могут быть использованы с уже имеющимся оборудованием.
Однако, давно появились адаптеры с SD в Memory Stick. Для PSP существует адаптер, исполненный в корпусе стандартной Memory Stick, позволяющий использовать одновременно две карты MicroSD и таким образом получать объём в 32 ГБ. [4]
Файловые системы
Файловые системы семейства FAT — стандарт или стандарт де-факто для многих носителей информации, которые должны быть доступны с помощью нескольких операционных систем, за исключением оптических дисков. Полноценная или значительная поддержка FAT существует в большинстве ОС, в отличие от других файловых систем, поддерживаемых наиболее распространёнными ОС для персональных компьютеров, Microsoft Windows, за исключением файловой системы UDF. Многие компактные мобильные устройства вроде фотоаппаратов поддерживают только эту файловую систему.
Из-за этого файловую систему FAT могут предпочесть для совместимости с такими устройствами, даже если речь идёт об использовании носителя с устройством, поддерживающим другую файловую систему (с меньшей фрагментацией файлов, меньшим износом носителя, дополнительными функциями). [источник не указан 92 дня]
Фотоаппараты
В фотоаппаратах есть всего три открытых стандарта для аксессуаров: штативный винт диаметром 1/4 дюйма, горячий башмак и резьба M42. Но последние два стандарта ограниченны в возможностях — в них нет управления диафрагмой, фокусировкой и ведущим числом фотовспышки. Поэтому разные производители делают свои собственные форматы объективов, вспышек и пультов дистанционного спуска, и при смене производителя приходится менять все аксессуары (кроме разве что штатива).
Существуют всевозможные переходники для объективов, которые стоят достаточно дёшево — во много раз меньше, чем хороший объектив. Они широко используются для крепления объективов «доцифровой» эры на современные фотоаппараты — впрочем, фокусировка или автоматика диафрагмы на них зачастую работает с ограничениями.
Microsoft
Microsoft Office
Текстовый процессор Microsoft Word и табличный процессор Microsoft Excel, входящие в пакет Microsoft Office, в течение многих лет [5] по умолчанию сохраняли документы в формате, описание которого можно было получить только за деньги и подписку о неразглашении, что препятствовало реализации качественной поддержки этого формата в конкурирующих программах. Позже условия доступа к описанию изменились, но возник вопрос о том, подходят ли они для свободного ПО, которое не приемлет патентных ограничений. Эти новые условия также распространяются на новый формат, основанный на предыдущих — сделанный стандартом ISO и Ecma вскоре после принятия ISO и OASIS менее спорного по своей открытости аналога. [6]
Microsoft предоставляет программу для Windows «Microsoft Word Viewer», которая позволяет просматривать файлы в форматах Word. С помощью Microsoft Office Word Viewer 2003 разрешено только просматривать и печатать документы. [7]
Сжатие данных с потерями
Данные, сжатые с потерями, может быть невыгодно преобразовывать в другой формат: это приведёт либо к увеличению их размера, либо к дальнейшим потерям. [9] Приходится сохранять совместимость с использованным для сжатия данных форматом при том, что декодирование из этого формата (как у различных форматов MPEG) или распространение данных в нём (как по меньшей мере планировалось для H.264) может облагаться патентными отчислениями.
RedHat CEO: не попадитесь в «облачный» Vendor Lock-in
Wikipedia: «Vendor lock-in» (также «proprietary lock-in», «customer lock-in», «привязка к поставщику», «замыкание на одном поставщике», «барьер для смены поставщика»), в экономике — зависимость потребителя от продуктов и сервисов одного поставщика, невозможность сменить поставщика из‑за высоких затрат на переход.
Некоторое время назад пытался рассказать об облачной стратегии Red Hat. Честно говоря, получилось не очень. 🙂 Что, в общем-то не удивительно, по нескольким слайдам сложно всё объяснить, но главная мысль заключается в единственной фразе: «Red Hat будет стараться занять рынок, обеспечивая переносимость приложениям между поставщиками «облачной» инфраструктуры и сервисов.» Почему это важно, читайте под катом (статья немного сокращена и добавлены картинки, для наглядности).
Какое главное предназначение облачных вычислений? Первоначальная и основная идея облаков была в том, чтобы предоставить столько вычислительных ресурсов, сколько необходимо здесь и сейчас, именно в данный момент. Таким образом, облака — это просто возможность легко и быстро увеличить или уменьшить вычислительные мощности.
Ценность облачных вычислений заключается в том, что задачи, требующие огромные инвестиции в аппаратные средства, теперь можно выполнить на «арендованном» оборудовании, что гораздо дешевле, ведь совсем не обязательно, чтобы вычислительные мощности находились в собственности организации, использующей их. Однако, существует опасность того, что облачные вычисления станут привлекательной мишенью для недобросовестных поставщиков. Сможет ли «экономика эффективности» противостоять «экономике vendor lock-in»? Мы должны остановиться и спросить себя: «Облачные вычисления станут примером стандартизации и свободы выбора или они станут следующей проприетарной платформой?»
Если мы не хотим оказаться запертыми в ловушке vendor lock-in, мы должны тщательно следить за тем, чтобы облачные вычисления не стали шагом назад в плане гибкости и возможности выбора решений для предприятий.
Джим Уайтхерст (Jim Whitehurst), президент и CEO Red Hat, утверждает, что есть у CIO есть обоснованные сомнения в том, что с приходом облачных вычислений они получат широкий выбор ПО и конкуренцию среди поставщиков облачных услуг. Он считает, что следующие 24 месяца будут решающим в определении того, станут ли облака областью «открытых стандартов», позволяющей клиентам экономить на стоимости ресурсов, или они станут «чёрным ящиком», выгодным только для поставщиков закрытых решений.
Уайтхерст обескуражен тем, что на рынке появляется всё большее и больше проприетарных cloud-предложений, чьи производители насаждают свои собственные, уникальные, обособленные облачные продукты. «Это приведёт нас в тупик» — говорит Уайтхерст.
Производители ПО не задумываются о том, выгоден ли их продукт для клиента. Они спрашивают себя: «Как сделать так, чтобы максимально затруднить переход к конкурентам?» — говорит Уайтхерст. «На самом деле, клиенты хотят получить не проприетарные решения, которые затянут их в ловушку vendor lock-in, а стандартизованное ПО и возможность широкого выбора поставщика. Если, конечно, они видят в облачных вычислениях инновации, а не возвращение к временам вертикальных стеков 1980-х годов.»
Облачные вычисления действительно являются более гибким, чем просто программно-аппаратные платформы, но если вы окажитесь заперты в проприетарном ПО одного поставщика, вы можете не заметить никаких преимуществ. «Vendor Lock-in значительно увеличит стоимость и значительного сокращения средств в результате повышения технической эффективности не произойдёт»- говорит Уайтхерст.
Для того, чтобы способствовать стандартизации облачных вычислений, компания Red Hat разработала и передала в Apache Software Foundation open-source проект Deltacloud. Цель этого проекта в том, чтобы предоставить разработчикам единый, упрощённый доступ к различным облакам, таким, как Amazon, IBM, RackSpace, OpenStack, и Eucalyptus, а также технологиям виртуализации, например, к ESX (гипервизор VMware).
Идея, стоящая за созданием Deltacloud, состоит в том, чтобы принять один стандартный API для различных облачных сред, который даст разработчикам возможность выбора на каждом из уровней стека. Это сделает облачные вычисления больше похожими на Linux, в том смысле, чтобы они будут основаны на единых стандартах, и не допустить такой ситуации, какая случилось с Microsoft Windows, когда всё зависит от одной компании, которая и получает большую часть прибыли от экосистемы вокруг этой платформы.
Возможность выбора, в каком из «облаков» будут ваши приложения и данные — необходимое свойство облачных вычислений, по мнению Red Hat
Если проект Deltacloud будет успешен, станет возможно создание приложений, которые смогут выполняться и на виртуальной машине, и в центре обработки данных, и на частных, и на публичных облаках, без необходимости вносить изменения. Такая гибкость и свобода выбора будет важным инструментом для современного CIO, роль которого сильно изменилась с течением времени.
Набор навыков современного CIO связан с пониманием бизнес-стратегии и управления в компании. Понимание того, что его работа, заключается не только в укреплении всего IT в целом, но и в том, чтобы пользователи имели возможность привносить что-то инновационное, применить свои IT- знания, в отношении современных технологий для того, чтобы помочь пользователям воплотить свои идеи в рабочие решения.
В этом случае уход от vendor lock-in становится крайне важным. Приложения и инструменты пользователей должны быть мобильными как внутри предприятия, так и в облачных вычислениях. Жизненно важно, чтобы они были созданы так, чтобы они могли быть развёрнуты согласно пользовательским потребностям, а не условиям, которые диктует поставщик.
Deltacloud занимает центральное место в облачной стретегии Red Hat.
С Deltacloud Red Hat надеется продемонстрировать скорость и мощь общедоступных технологий для CIO и конечных пользователей. Deltacloud должен открыть возможность конкуренции и свободы выбора на облачном рынке, так же, как Red Hat Linux открыл её на аппаратном рынке, устраняя «стоимость перехода» на новый стек проприетарных предложений. Пользователи облачных вычислений должны инвестировать средства в приложения, которые действительно дадут им преимущества.
“Причина, по которой мы уделяем этому вопросу такое большое внимание, не в том, что Linux лучше чем Unix; а в том, что все мы неожиданно открыли дух соперничества и свободу выбора аппаратных средств”- говорит Уайтхерст. “Я могу записать программное обеспечение однажды, и выбирать среди поставщиков оборудования. Это приводит к ощутимой экономии. В случае с Deltacloud — действует тот же самый принцип: напишите своё приложение один раз и используйте его в вашем частном облаке, в собственном центре обработки данных или переместите его в публичное облако. Мы не касаемся того, где вы хотите разместить ваши приложения, но для нас важно, чтобы у вас была бы возможность изменить своё решение и перейти к другому поставщику ПО или сервисов.”
Vendor lock-in является одной из причин крупных расходов в IT-отделах, говорит Уайтхерст. При независимом подходе к облачным вычислениям, таком как у Deltacloud, преимущество будет на стороне компании, а не у поставщика «облачной» инфраструктуры.
Используем Docker и не волнуемся о vendor-lock
Docker в значительной мере изменил подход к настройке серверов, поддержке и доставке приложений. Разработчики начинают задумываться о том, можно ли архитектуру их приложений разделить на более мелкие компоненты, которые будут запускаться в изолированных контейнерах, что позволит достичь большего ускорения, параллелизации исполнения и надежности. Также Docker решает важную проблему снятия облачного vendor–lock и позволяет легко мигрировать настроенные приложения между собственными серверами и облаками. Все что требуется от сервера, чтобы запустить Docker – более-менее современная ОС Linux с ядром не ниже 3.8.
В этой статье мы расскажем о том, как просто использовать Docker и какие преимущества он даст сисадмину и разработчику. Забудьте про проблемы с зависимостями, запускайте на одном сервере софт, требующий разные дистрибутивы Linux, не бойтесь «загрязнить» систему неправильными действиями. И делитесь наработками с сообществом. Docker решает множество актуальных проблем и помогает сделать IaaS гораздо более похожими на PaaS, без vendor-lock.
На облачных VPS от Infobox мы сделали готовый образ Ubuntu 14.04 с Docker. Получите бесплатную пробную версию (кнопка «Тестировать 10 дней») и начните использовать Docker прямо сейчас! Не забудьте поставить галочку «Разрешить управление ядром ОС» при создании сервера, это требуется для работы Docker. В самое ближайшее время у нас появятся и другие ОС с Docker внутри.
Под катом вы узнаете, что же в Docker настолько воодушевило автора статьи, что за пару дней он перевел свои облачные сервера, автоматизирующие части процесса разработки, в контейнеры Docker.
Что же такое Docker
Docker – open–source движок, автоматизирующий развертывание приложений в легковесные, переносимые, самодостаточные контейнеры, которые могут без изменений переноситься между серверами.
Тот же самый контейнер, который разработчик создает и тестирует на ноутбуке, может быть легко перенесен на продакшн-сервера в облако и так же легко смигрирован в другой регион при необходимости.
Можно провести неплохую аналогию из области грузоперевозок. До 1960х большинство грузов перевозились вперемешку. Перевозчикам нужно было заботиться о воздействии одного типа груза на другой (например, если наковальни внезапно положили на мешки с бананами). Смена транспорта, например с поезда на корабль, для груза тоже было испытанием. До половины времени поездки занимала погрузка, разгрузка и перегрузка. Были большие потери в процессе поездки из-за повреждения груза.
Решением проблемы стал стандартный контейнер для перевозки. Теперь любые типы грузов (от помидоров до автомобилей) могли быть упакованы в контейнеры. Контейнеры не открывались до окончания поездки. Легко было эффективно расположить контейнеры на транспорте и перегружать автоматическими кранами при необходимости, без разгрузки самого контейнера. Контейнеры изменили мир грузоперевозок. Сегодня 18 миллионов перевозимых стандартных контейнеров составляют 90% мировой торговли.
Контейнеры для морских грузовых перевозок в порту Циндао, Китай.
Docker можно представить именно как такие контейнеры в коде компьютера. Практически любое приложение может быть упаковано в легковесный контейнер, позволяющий автоматизацию. Такие контейнеры спроектированы, чтобы запускаться виртуально на любом Linux–сервере (с ядром 3.8 и выше).
Другими словами, разработчики могут упаковать свои приложения один раз и будут уверены, что приложение запускается именно в их протестированной конфигурации. Работа сисадминов также значительно упрощается — о поддержке софта нужно заботиться все меньше.
Компоненты Docker
Клиент и сервер
Docker – клиент-серверное приложение. Клиенты разговаривают с сервером (демоном), который непосредственно делает всю работу. Для управления Docker можно использовать утилиту командной строки docker и RESTful API. Можно запускать клиент и сервер на одном хосте или удаленно подключаться к Docker-серверу.
Образы Docker
Свои контейнеры пользователь запускает из образов, которые являются частью процесса построения контейнера. Образ использует AuFS для прозрачного монтирования файловых систем. С помощью bootfs загружается контейнер в память. Затем bootfs отмонтируется, освобождая память. Далее работает rootfs (от Debian, Ubuntu и т.д.). В Docker rootfs монтируется в режиме «только для чтения». Когда контейнер запущен из образа, монтируется файловая система на запись поверх необходимого слоя ниже.
Реестры
Docker хранит созданные вами образы в реестрах. Существует два типа реестров: публичные и приватные. Официальный реестр называется Docker Hub. Создав в нем аккаунт, можно сохранять свои образы в нем и делиться ими с другими пользователями.
В Docker Hub уже более 10 000 образов с различными ОС и программным обеспечением. Также можно сохранять приватные образы в Docker Hub и использовать их в рамках вашей организации. Использование Docker Hub необязательно. Возможно создание собственных репозиториев вне инфраструктуры Docker (например на ваших корпоративных облачных серверах).
Контейнеры
Docker помогает вам создавать и развертывать контейнеры, внутри которых вы можете запускать ваши приложения и сервисы. Контейнеры запускаются из образов.
Когда Docker запускает контейнер, слой для записи пуст. При изменениях они записываются в этот слой. Например при изменении файла он копируется в слой, доступный для записи (copy on write). Копия «только для чтения» по-прежнему существует, но скрывается. После создания контейнера Docker выстраивает набор read–only образов и подключает слой для записи.
Создаем интерактивный контейнер
После создания виртуальной машины с Docker можно приступать к созданию контейнеров. Получить базовую информацию об инсталляции можно командой docker info.
Полный список доступных команд можно получить командой docker help.
Давайте построим контейнер с Ubuntu.
Давайте установим nano в контейнер.
Выйти из контейнера можно командой exit.
Обращаться к контейнеру можно не только по ID, но и по имени.
Давайте запустим контейнер:
Для подключения к контейнеру необходимо использовать команду attach:
(может понадобиться нажатие Enter до появления приглашения).
Создаем контейнер-демон
Как достать и положить данные?
Для того, чтобы скопировать данные в контейнер или вынуть из него, необходимо воспользоваться командой
Можно подмонтировать папку хоста в контейнер при создании:
,
где /tmp – путь к папке на хосте, а /root – путь к папке на сервере. Таким образом можно работать из контейнера с данными на хосте и исключить необходимость копирования данных в обе стороны.
Работаем с образами
Давайте посмотрим список всех наших образов docker images
Изменения в существующем контейнере можно закоммитить в образ для дальнейшего использования.
.
Перенос образа на другой хост
Наконец-то о главном. Допустим, вы настроили свое приложение в Docker и закоммитили в образ. Теперь можно сохранить образ в файл
Копируем этот образ на другой хост например с помощью scp и импортируем его в Docker.
Вот и все, можно легко переносить свои приложения между хостами, облаками и собственными серверами. Никакого vendor–lock. Только ради этого стоит использовать Docker! (если вы сохраняли данные на примонтированную файловую систему, не забудьте перенести и их).
Устанавливаем nginx в Docker
Давайте для примера установим nginx в Docker и настроим его автозапуск. Конечно можно просто скачать образ с nginx для Docker, но мы посмотрим, как это делается с самого начала.
Создайте чистый контейнер с Ubuntu 14.04 с открытыми 80 и 443 портами:
Добавьте в /etc/apt/sources.list официальный репозиторий стабильной версии nginx:
Можно проверить, что nginx запускается, выполнив:
Мы увидим страницу приветствия, зайдя на ip сервера на порт 80:
Для различных применений настройки nginx могут отличаться, имеет смысл сохранить контейнер с nginx в образ /nginx:
Здесь мы впервые встретились с Docker Hub. Время создать аккаунт в этом сервисе и залогиниться с помощью команды docker login.
Отправим наш образ trukhinyuri/nginx на docker hub для повторного использования на других серверах в будущем. (здесь trukhinyuri – имя репозитория автора):
Для того, чтобы nginx стартовал при запуске хоста, добавим скрипт инициализации upstart по адресу /etc/init/nginx.conf:
Заключение
В этой статье вы смогли попробовать Docker и оценить, как просто упаковывать приложение и мигрировать между различными хостами. Это только вершина айсберга, очень многое осталось за кадром и будет рассмотрено в будущем. Для дополнительного чтения рекомендуем книгу The Docker Book.
Попробовать образ с Docker в на облачных VPS от Infobox в Амстердаме можно, получив пробную версию бесплатно (кнопка «Тестировать 10 дней»).
UPD: Доступ в пробную версию облачных VPS временно ограничен. Заказ по-прежнему доступен. Мы тестируем новую технологию, позволяющую сделать сервис еще быстрее. Следите за новостями.
Если вы обнаружили ошибку в статье, автор ее с удовольствием исправит. Пожалуйста напишите в ЛС или на почту о ней.
В случае, если вы не можете оставлять комментарии на Хабре — напишите комментарий к статье в Сообществе InfoboxCloud.