что хорошего в docker'е?
От: mizuchi Земля  
Дата: 16.11.17 07:42
Оценка:
что в нём хорошего? и что плохого?
стоит ли эта абстракция того, чтобы её узучать и даже иногда ходить на всякие meetup'ы?
может, хайп быстро пройдёт и снова начнётся поиск новой серебрянной пули?
---------------------

nothingness.space
Re: что хорошего в docker'е?
От: MTD https://github.com/mtrempoltsev
Дата: 16.11.17 07:53
Оценка:
Здравствуйте, mizuchi, Вы писали:

M>что в нём хорошего? и что плохого?


А что хорошего и плохого в виртуальных машинах? Может википедию сначала почитать? Лично мне докер очень нравится — позволяет очень просто и быстро развернуть нужное окружение.

M>стоит ли эта абстракция того, чтобы её узучать и даже иногда ходить на всякие meetup'ы?


Тебе видней. Изучается он на базовом уровне за пол дня.

M>может, хайп быстро пройдёт и снова начнётся поиск новой серебрянной пули?


Является ли лопата серебрянной пулей? А молоток? Детские какие-то вопросы.
Re[2]: что хорошего в docker'е?
От: MadHuman Россия  
Дата: 16.11.17 08:09
Оценка: 1 (1)
Здравствуйте, MTD, Вы писали:

MTD>А что хорошего и плохого в виртуальных машинах? Может википедию сначала почитать? Лично мне докер очень нравится — позволяет очень просто и быстро развернуть нужное окружение.


зачем докер, если уже есть виртуальные машины?.. чем он лучше?
Re: что хорошего в docker'е?
От: vsb Казахстан  
Дата: 16.11.17 08:13
Оценка: +1
Здравствуйте, mizuchi, Вы писали:

M>что в нём хорошего?


Одной командой можно развернуть нетривиальное окружение на любой ОС. Можно очень быстро запускать много экземпляров чего-нибудь, восстанавливать окружение и тд. Например я думаю заюзать докер для БД-тестов: заранее готовится образ с БД и нужными таблицами, перед каждым тестом запускается отдельный инстанс БД, после теста выбрасывается.

M>и что плохого?


1. Это контейнер, а не виртуальная машина, если окружение завязано на ОС, ничего не получится. Например я работаю с Oracle 9i, который требует RHEL 4 и специальных настроек ядра, докер тут не поможет.

2. Не раз слышал про проблемы с производительностью. Для разработки, конечно, пофиг, для продакшна надо тестить.

3. Под венду официальная сборка требует hyper-v, а это Pro, на Home пролетаешь. Вроде есть какие-то старые сборки с виртуалбоксом, наверное придумать можно что-нибудь, но всё равно неприятно.

4. Все эти образы жрут сотни мегабайтов, а то и гигабайты. Ставить убунту на 300 мегабайтов ради постгреса в 3 мегабайта иногда кажется странным.

M>стоит ли эта абстракция того, чтобы её узучать и даже иногда ходить на всякие meetup'ы?

M>может, хайп быстро пройдёт и снова начнётся поиск новой серебрянной пули?

Хз, чего там изучать, там всё тривиально, за 10 минут можно разобраться. Какие там митапы.
Re[3]: что хорошего в docker'е?
От: vsb Казахстан  
Дата: 16.11.17 08:14
Оценка:
Здравствуйте, MadHuman, Вы писали:

MTD>>А что хорошего и плохого в виртуальных машинах? Может википедию сначала почитать? Лично мне докер очень нравится — позволяет очень просто и быстро развернуть нужное окружение.


MH>зачем докер, если уже есть виртуальные машины?.. чем он лучше?


У виртуальных машин больше расходов. Ядро грузится секунды, жрёт мегабайтов 10 оперативной памяти как минимум. У контейнеров этих расходов нет. Ну и самое главное, докер это экосистема. Я одной командой могу wordpress установить, другой postgres с redis поднять, а с виртуалками надо тратить время.
Отредактировано 16.11.2017 8:16 vsb . Предыдущая версия .
Re[3]: что хорошего в docker'е?
От: MTD https://github.com/mtrempoltsev
Дата: 16.11.17 08:27
Оценка:
Здравствуйте, MadHuman, Вы писали:

MH>зачем докер, если уже есть виртуальные машины?.. чем он лучше?


Тем что ты одной командой поднимаешь из DockerFile нужное тебе окружение:

FROM ubuntu:17.04

WORKDIR /some_dir

RUN apt-get update
RUN apt-get install cmake -y
RUN apt-get install g++ -y
RUN apt-get install libboost-all-dev -y

ADD src src/
ADD CMakeLists.txt .

RUN cd mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Release && make

EXPOSE 80

CMD cd build && ./server


Это очень удобно.
Re[4]: что хорошего в docker'е?
От: TK Лес кывт.рф
Дата: 16.11.17 08:44
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Тем что ты одной командой поднимаешь из DockerFile нужное тебе окружение:


MTD>
MTD>FROM ubuntu:17.04

MTD>WORKDIR /some_dir

MTD>RUN apt-get update
MTD>RUN apt-get install cmake -y
MTD>RUN apt-get install g++ -y
MTD>RUN apt-get install libboost-all-dev -y

MTD>ADD src src/
MTD>ADD CMakeLists.txt .

MTD>RUN cd mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Release && make

MTD>EXPOSE 80

MTD>CMD cd build && ./server
MTD>


MTD>Это очень удобно.


Кошмар какой. Это как кухня совмещённая с сортиром
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[5]: что хорошего в docker'е?
От: MTD https://github.com/mtrempoltsev
Дата: 16.11.17 08:49
Оценка:
Здравствуйте, TK, Вы писали:

TK>Кошмар какой. Это как кухня совмещённая с сортиром


А можно конструктивней? Мне действительно интересно, что не понравилось и что ты предложил бы в качестве альтернативы.
Re: что хорошего в docker'е?
От: neFormal Россия  
Дата: 16.11.17 08:52
Оценка: +2
Здравствуйте, mizuchi, Вы писали:

M>что в нём хорошего?


изолированная среда, которую при желании можно соединить с чем-то ещё
меньше проблем с правами

M>и что плохого?


хреновый дизайн команд управления
нестабильность
проблемы с безопасностью

M>стоит ли эта абстракция того, чтобы её узучать и даже иногда ходить на всякие meetup'ы?

M>может, хайп быстро пройдёт и снова начнётся поиск новой серебрянной пули?

изучить стоит. контейнеры будут развиваться.
надеюсь только, что иным образом.
...coding for chaos...
Re[4]: что хорошего в docker'е?
От: Hobbes Россия  
Дата: 16.11.17 09:02
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>
MTD>RUN apt-get update
MTD>RUN apt-get install cmake -y
MTD>RUN apt-get install g++ -y
MTD>RUN apt-get install libboost-all-dev -y
MTD>


Вот это-то можно и одной командой. Экономьте слои!
Re[4]: что хорошего в docker'е?
От: Слава  
Дата: 16.11.17 09:57
Оценка: +3 -1 :))) :))
Здравствуйте, MTD, Вы писали:

MTD>Тем что ты одной командой поднимаешь из DockerFile нужное тебе окружение:


Докер — это месть программистов одминам за угребищную систему пакетов.
Re: что хорошего в docker'е?
От: Hobbes Россия  
Дата: 16.11.17 11:04
Оценка: +1
Здравствуйте, mizuchi, Вы писали:

M>что в нём хорошего? и что плохого?

M>стоит ли эта абстракция того, чтобы её узучать и даже иногда ходить на всякие meetup'ы?

Например, docker-compose позволяет одной командой запустить десяток сервисов, прогнать интеграционные тесты и всё за собой убрать. Это ли не чудо?
Re: что хорошего в docker'е?
От: Anton Batenev Россия https://github.com/abbat
Дата: 16.11.17 11:10
Оценка: +1
Здравствуйте, mizuchi, Вы писали:

m> что в нём хорошего? и что плохого?


Хорошего в нем мало — обычная надстройка для тех, кто не осилил LXC и/или пакетные менеджеры. Много в чем ограничена, многого не умеет. С переменным успехом может использоваться для коротко живущих сред (прогон тестов, которые не требуют особенного runtime например).

m> стоит ли эта абстракция того, чтобы её узучать и даже иногда ходить на всякие meetup'ы?


Посмотреть, чтобы иметь мнение, стоит. Завязывать на нее production процессы — это целиться себе в ногу со 100% вероятностью ее очень больно прострелить.
Re: что хорошего в docker'е?
От: msorc Грузия  
Дата: 16.11.17 11:30
Оценка: +1
Здравствуйте, mizuchi, Вы писали:

M>что в нём хорошего? и что плохого?

M>стоит ли эта абстракция того, чтобы её узучать и даже иногда ходить на всякие meetup'ы?
M>может, хайп быстро пройдёт и снова начнётся поиск новой серебрянной пули?

Удобно что-то чужое быстро развернуть, попробовать. Выкладывать на чужие сервера можно, оно должно все типа подхватить.

Из личного опыта — пробовали на одном сервере запускать через докер тесты, чтобы было изолировано. Redis, Postgres и приложение. Из помудохаться — настроить порты, чтобы при новом запуске из приложения было видно redis и postgres, вновь созданные файлы внутри контейнера под рутом на хост машине и прочии танцы с бубнами.

В итоге отказались, оказалось сильно прожорливо и ненадежно (то упадет раз на 20, то пришлось повесить на крон задачу чистить потерянные контейнеры с образами). Решили задачу плагином к Jenkins-у, который стартовал билды на новом инстансе.

При подготовке решения с докерам, рабочую машину (OpenSUSE) перегружал пару раз в день. Часто запускал, останавливал контейнеры, создавал образы и т.п. Впечатления не из приятных, когда зависает намертво настроенная среда работы.

В общем как обычно, пока делаешь мелочи по Getting Started, все ок. Начинаешь городить, то что нужно — получаются сюрпризы.

Ознакомится думаю стоит, чтобы понимать что это такое и как может пригодится.
Re[2]: что хорошего в docker'е?
От: Vetal_ca Канада http://vetal.ca
Дата: 16.11.17 22:27
Оценка:
Здравствуйте, vsb, Вы писали:



vsb>4. Все эти образы жрут сотни мегабайтов, а то и гигабайты. Ставить убунту на 300 мегабайтов ради постгреса в 3 мегабайта иногда кажется странным.


См Alpine

vsb>Хз, чего там изучать, там всё тривиально, за 10 минут можно разобраться. Какие там митапы.


Судя по уровню жалующихся, разбирались как раз те 10 минут.
Re[2]: что хорошего в docker'е?
От: Vetal_ca Канада http://vetal.ca
Дата: 16.11.17 22:28
Оценка:
Здравствуйте, Hobbes, Вы писали:

H>Например, docker-compose позволяет одной командой запустить десяток сервисов, прогнать интеграционные тесты и всё за собой убрать. Это ли не чудо?


Чудо но очень ограничен.

Дальше только скрипты или что-то типа terraform от hashicorp
Re: что хорошего в docker'е?
От: Ночной Смотрящий Россия  
Дата: 16.11.17 22:47
Оценка:
Здравствуйте, mizuchi, Вы писали:

M>что в нём хорошего? и что плохого?


Это как виртуалка, только намного дешевле в плане ужирания ресурсов.
Еще один приятный бонус — штуки вроде ACI. Классическую виртуалку, если это винда, поднять быстрее 8 минут со стандартного образа не получается, много времени уходит на конфигурирование. А контейнер в ACI поднимается за несколько секунд. Сопоставь эффективность скейлинга и отсутствие необходимости всяких нейросетевых предсказателей нагрузки.
Re[2]: что хорошего в docker'е?
От: Ночной Смотрящий Россия  
Дата: 16.11.17 22:50
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>1. Это контейнер, а не виртуальная машина, если окружение завязано на ОС, ничего не получится. Например я работаю с Oracle 9i, который требует RHEL 4 и специальных настроек ядра, докер тут не поможет.


Оракль то зачем в докер пихать? Такие вещи обычно как PaaS делаются, а не как IaaS.

vsb>3. Под венду официальная сборка требует hyper-v, а это Pro, на Home пролетаешь.


Зачем докер на персоналках?
Re: что хорошего в docker'е?
От: Vetal_ca Канада http://vetal.ca
Дата: 16.11.17 23:01
Оценка: 2 (1)
Здравствуйте, mizuchi, Вы писали:

M>может, хайп быстро пройдёт и снова начнётся поиск новой серебрянной пули?


Плюсы

— Контейнеризация. "Это работает на моей машине" больше не пройдет. Чистая среда безо всякой истории.
— Все особенности конкретного сервера реализуются кем-то и не нужно с этим разбираться. Или повторно разбираться со своим. Реальный reuse.
— Нет явного взаимного влияния сервера на сервер — каждый в своем мире крутится. Каждый сервер в своем контейнере гадит как хочет.
— Упрощение конфигурирования. Контейнер это простой черный ящих и все его особенности внутри. Разделение внешней кофигурации (эземпляры стека приложений) и простой внутренней (мы одни во вселенной).
— Не надо разбираться "А как добавить в автозапуск продукт XYX". Полное единообразие и нет зоопарка разных подходов (upstart & Co — на помоечку)
— Простота развертывания и возможность убрать все обратно подчистую
— Все развертнывание явно, конфигурация и скрипты. В git с историей. А не "Я настраивал год назад, ща вспомню как"
— Сложные сетевые конфигурации. На одном хосте можно отгрохать интересную конструкцию, целый раутер и т.п.
— К сетям, полная гибкость конфигурирования listen points. Не важно, оставили ли создатели возможность "слушать" на выбранных интерфейсах — делаешь извне как себе надо
— Возможность делать изолированные command center console. Не нужно больше — "А сегодня потрать день на настройку своего компьютера". Все из коробки (image). Если пользователь что-то доставил или "разлил", вышел — вошел и вся разлившаяся гадость убралась вместе со старым контейнером. Вместо того чтобы ждать своего веселого часа, "кто поменял эти файлы и не сказал". При этом N человек могут работать в своем контейнере где файлы у каждого свои, но находятся в одном и том же сконфигурированном месте. Типа унифицированного офиса из грузового контейнера.
— Много другого, отбирающего работу админов старой школы

Минусы
— Постоянно все многое меняется. Подход к deployment сильно другой по сравнению с подходом "старой школы"
— Нет четкого заданного порядка старт-стоп с зависимости между контейнерами. Нада явно добавлять.
— Сложность управления ownership/permissions внутри контейнера — надо изгаляться со starup скриптом или через volumes
— Нет смешанных сетевых режимов (например, host/bridge одновременно)
— Монструозные контейнеры, сильная забагованность и чрезвычайная нестабильность под Windows
— В swarm нет хорошей возможности управления persistent data (БД/NoSQL и прочее)
— В стандартном сетевом режиме работает более медленно чем в native network stack. Проблемы с возможностью отключить userland-proxy: hairpin nat и их знаменитый 3-хлетний баг связанный с багами ядра (https://github.com/moby/moby/issues/5618). Кроме производительности с этим еще проблемы много-портовых контейнеров, например Freeswitch/Asterisk с диапазоном UDP портов
— много другогих проблем, дающих работу DevOp-ам новой школы
Re[2]: что хорошего в docker'е?
От: turbocode  
Дата: 16.11.17 23:26
Оценка:
НС>Это как виртуалка, только намного дешевле в плане ужирания ресурсов.
За счет чего? Винда в докере будет работать быстрее?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.