Docker

User avatar
Ion Tichy
Уже с Приветом
Posts: 13460
Joined: 07 Dec 2004 04:00
Location: Москва->CO

Re: Docker

Post by Ion Tichy »

major Major Major Major wrote: 09 Nov 2018 21:59
АццкоМото wrote: 09 Nov 2018 21:51 т.е. это говниище не работает с бинарниками, а только с платформ-агностиик штуками типа пхп или джавы чоле?
Работает конечно. Если у тя бинарники компилятся под разные OS, то Докер знает какой образ ему брать.
То есть ты говоришь мол docker run --name mongodb а он сам уже подгрузит чего надо, и будет монго и в винде и под линуксом работать.
Докер на Виндах :)
Как же это вы без гравицаппы пепелац выкатываете из гаража? Это непорядок...
Pantigalt
Уже с Приветом
Posts: 803
Joined: 24 Jan 2007 07:32
Location: Сергели->Новосибирск->SFBA->Новосибирск->Москва->NY->SFBA

Re: Docker

Post by Pantigalt »

Ion Tichy wrote: 09 Nov 2018 22:27
major Major Major Major wrote: 09 Nov 2018 21:59
АццкоМото wrote: 09 Nov 2018 21:51 т.е. это говниище не работает с бинарниками, а только с платформ-агностиик штуками типа пхп или джавы чоле?
Работает конечно. Если у тя бинарники компилятся под разные OS, то Докер знает какой образ ему брать.
То есть ты говоришь мол docker run --name mongodb а он сам уже подгрузит чего надо, и будет монго и в винде и под линуксом работать.
Докер на Виндах :)
Так как изначально докер для серверов делался то под винду работает только на Windows Server 2016 и на Windows 10 только для целей разработки.
Все только через строку. Так что инсталировать приложение которое требует UI действий не получится.
Спи быстрее, твоя подушка нужна другому. Copyright Зощенко
User avatar
Prosche
Уже с Приветом
Posts: 7956
Joined: 08 Nov 2004 12:24
Location: GA

Re: Docker

Post by Prosche »

Не, ну можно и виртуалки автоматизировать, вагрант никто не отменял, по ситуации надо смотреть, с виртуалками может быть нюанс по запуску ВМ из ВМ.
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Docker

Post by АццкоМото »

major Major Major Major wrote: 09 Nov 2018 21:59
АццкоМото wrote: 09 Nov 2018 21:51 т.е. это говниище не работает с бинарниками, а только с платформ-агностиик штуками типа пхп или джавы чоле?
Работает конечно. Если у тя бинарники компилятся под разные OS, то Докер знает какой образ ему брать.
То есть ты говоришь мол docker run --name mongodb а он сам уже подгрузит чего надо, и будет монго и в винде и под линуксом работать.
Очень странно. Т.е. по крайней мере нет вопроса "как эта срань работает". И так всё логично, это получается такой... Ну как бы wrapper вокруг brew, apt-get и прочих. На самом деле нет, но "как бы"

Но все равно странно. Ну mongo можно и там и там гонять. А если mssql или там пасьянс косынка? Что тогда?
Мат на форуме запрещен, блдж!
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Docker

Post by АццкоМото »

Ion Tichy wrote: 09 Nov 2018 22:27
major Major Major Major wrote: 09 Nov 2018 21:59
АццкоМото wrote: 09 Nov 2018 21:51 т.е. это говниище не работает с бинарниками, а только с платформ-агностиик штуками типа пхп или джавы чоле?
Работает конечно. Если у тя бинарники компилятся под разные OS, то Докер знает какой образ ему брать.
То есть ты говоришь мол docker run --name mongodb а он сам уже подгрузит чего надо, и будет монго и в винде и под линуксом работать.
Докер на Виндах :)
Да бросьте. Это же пример очень разных ос, не более. Если бы сравнивались мак ос и Линукс, можно было бы "нуачо, не такие и разные". А тут максимальное разнесение.
Мат на форуме запрещен, блдж!
User avatar
Ion Tichy
Уже с Приветом
Posts: 13460
Joined: 07 Dec 2004 04:00
Location: Москва->CO

Re: Docker

Post by Ion Tichy »

АццкоМото wrote: 09 Nov 2018 23:19
Ion Tichy wrote: 09 Nov 2018 22:27
major Major Major Major wrote: 09 Nov 2018 21:59
АццкоМото wrote: 09 Nov 2018 21:51 т.е. это говниище не работает с бинарниками, а только с платформ-агностиик штуками типа пхп или джавы чоле?
Работает конечно. Если у тя бинарники компилятся под разные OS, то Докер знает какой образ ему брать.
То есть ты говоришь мол docker run --name mongodb а он сам уже подгрузит чего надо, и будет монго и в винде и под линуксом работать.
Докер на Виндах :)
Да бросьте. Это же пример очень разных ос, не более. Если бы сравнивались мак ос и Линукс, можно было бы "нуачо, не такие и разные". А тут максимальное разнесение.
И поэтому на Виндах Докер ранится на Линуксе внутри виртуалки. Для Вин7 Докер идет с ВритуалБоксом, а для Вин10 Докер идет с каким-то чисто виндюшным хипервайзером.
Еще раз, Докер - это юниксный chroot (https://linux.die.net/man/1/chroot) с кучей всего сверху.
Как же это вы без гравицаппы пепелац выкатываете из гаража? Это непорядок...
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15477
Joined: 27 Sep 2007 22:53

Re: Docker

Post by Мальчик-Одуванчик »

АццкоМото wrote: 09 Nov 2018 17:49 В чем его смысл, котаны? Никогда не надо было и вот внезапно. Прямо сейчас что-то делает, а я не до конца вдупляю, что именно
Удобно для кривых ручек, обобенно если на компе разработчика поделка еще как-то шевелится, а на чем-то другом - накрывается медным тазом.
Самый простой пример: "Видимо, что-то случилось" и оказалось, что сервисы, предназначенные жить в одной среде, зависят от разных и не совместимых между собой версий одной и той же библиотеки и докер в этом случае выступает выручалочкой.

Лично для меня - это не более чем еще один способ компоновки типа rpm, msi, ...
User avatar
major Major Major Major
Уже с Приветом
Posts: 1385
Joined: 10 Jan 2000 10:01
Location: Хьюстон

Re: Docker

Post by major Major Major Major »

АццкоМото wrote: 09 Nov 2018 23:13 Но все равно странно. Ну mongo можно и там и там гонять. А если mssql или там пасьянс косынка? Что тогда?
https://hub.docker.com/r/microsoft/mssql-server-linux/

:)

Сразу скажу - сам не пробовал
User avatar
Alexander Troyansky
Уже с Приветом
Posts: 5665
Joined: 15 Aug 2008 00:52

Re: Docker

Post by Alexander Troyansky »

Мальчик-Одуванчик wrote: 09 Nov 2018 23:58
АццкоМото wrote: 09 Nov 2018 17:49 В чем его смысл, котаны? Никогда не надо было и вот внезапно. Прямо сейчас что-то делает, а я не до конца вдупляю, что именно
Удобно для кривых ручек, обобенно если на компе разработчика поделка еще как-то шевелится, а на чем-то другом - накрывается медным тазом.
Самый простой пример: "Видимо, что-то случилось" и оказалось, что сервисы, предназначенные жить в одной среде, зависят от разных и не совместимых между собой версий одной и той же библиотеки и докер в этом случае выступает выручалочкой.

Лично для меня - это не более чем еще один способ компоновки типа rpm, msi, ...
ИМХО, кривые руки к докерам абсолютно перпендикулярны. rpm/msi vs Docker - это всё равно как сравнить перевозку товара на лодке и контейнеровозе. И том и на другом можно, но есть ньюанс. На лодке хорошо возить что-то мелкое, но фигово в больших объёмах. На контейнеровозе удобно если сложная логистика и стандартные гм... контейнеры, а вот только пару мешков личного барахла - западло ибо дорого.

если у кого сильно прямые руки, можно устроицца, например, в Нетфликс, и научить как работать, а то они там тупые не знают всю мощь rpm/msi, а используют всякие новомодные докеры, кубернетисы и прочую кластерную галиматью.
I would hope that a wise white man with the richness of his experiences would more often than not reach a better conclusion than a latina female who hasn't lived that life
Бубновый Валет
Уже с Приветом
Posts: 489
Joined: 01 Nov 2017 21:42

Re: Docker

Post by Бубновый Валет »

Важно знать, что docker image - это как класс в java, а docker container - это как объект, экземпляр класса.

Команды докера:

docker version - Shows docker version for client and server

docker ps - Shows the list of running containers ("ps" as linux "ps" command)
docker ps -a - Shows the list of all containers
docker images - Shows the list of downloaded images
docker rm contaner_name - Remove container (имя - то, что мы указываем с помощью --name, когда говорим docker run)

docker run hello-world - Downloads and runs "hello-world" image
docker search mariadb - Search for mariadb package

Если что-то накосячил, то можно убрать все:

docker stop and remove all, also remove images:

docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
docker rmi $(docker images -q)

Приаттачить докер к контейнеру:

docker exec -ti f767ff6ecebf bash
kostik78
Уже с Приветом
Posts: 3180
Joined: 17 May 2007 14:07

Re: Docker

Post by kostik78 »

Ion Tichy wrote: 09 Nov 2018 19:06
Prosche wrote: 09 Nov 2018 17:58 Легкая, изолированная ВМ.
Как бы ни разу не ВМ и только слеганца изолированная. Как тут, на Привете, кто-то сказал про Докер - это chroot с бантиками и рюшечками.
хехе не думал что фраза приживеться ;) Я эту фразу стал использовать после удачной импровизации во время ответа на вопрос на одном из компанейских техталков 4-4.5 года назад.
alex_127
Уже с Приветом
Posts: 7723
Joined: 29 Mar 2000 10:01
Location: Kirkland,WA

Re: Docker

Post by alex_127 »

kostik78 wrote: 10 Nov 2018 08:21
Ion Tichy wrote: 09 Nov 2018 19:06
Prosche wrote: 09 Nov 2018 17:58 Легкая, изолированная ВМ.
Как бы ни разу не ВМ и только слеганца изолированная. Как тут, на Привете, кто-то сказал про Докер - это chroot с бантиками и рюшечками.
хехе не думал что фраза приживеться ;) Я эту фразу стал использовать после удачной импровизации во время ответа на вопрос на одном из компанейских техталков 4-4.5 года назад.
Технически это все таки cgroups. Но есть прикольные варианты - один мой бывший коллега например пишет gvisor. Что в общем drawbridge from Galen Hunt на стероидах.
kostik78
Уже с Приветом
Posts: 3180
Joined: 17 May 2007 14:07

Re: Docker

Post by kostik78 »

alex_127 wrote: 11 Nov 2018 16:27
kostik78 wrote: 10 Nov 2018 08:21
Ion Tichy wrote: 09 Nov 2018 19:06
Prosche wrote: 09 Nov 2018 17:58 Легкая, изолированная ВМ.
Как бы ни разу не ВМ и только слеганца изолированная. Как тут, на Привете, кто-то сказал про Докер - это chroot с бантиками и рюшечками.
хехе не думал что фраза приживеться ;) Я эту фразу стал использовать после удачной импровизации во время ответа на вопрос на одном из компанейских техталков 4-4.5 года назад.
Технически это все таки cgroups. Но есть прикольные варианты - один мой бывший коллега например пишет gvisor. Что в общем drawbridge from Galen Hunt на стероидах.
а cgroups как раз и есть chroot на стероидах если поглядеть на историю развития. А докер это просто пакаджинг и тулсет во круг cgroups ;)
voyager3
Уже с Приветом
Posts: 1951
Joined: 11 Mar 2015 01:12

Re: Docker

Post by voyager3 »

kostik78 wrote: 11 Nov 2018 23:21
alex_127 wrote: 11 Nov 2018 16:27
kostik78 wrote: 10 Nov 2018 08:21
Ion Tichy wrote: 09 Nov 2018 19:06
Prosche wrote: 09 Nov 2018 17:58 Легкая, изолированная ВМ.
Как бы ни разу не ВМ и только слеганца изолированная. Как тут, на Привете, кто-то сказал про Докер - это chroot с бантиками и рюшечками.
хехе не думал что фраза приживеться ;) Я эту фразу стал использовать после удачной импровизации во время ответа на вопрос на одном из компанейских техталков 4-4.5 года назад.
Технически это все таки cgroups. Но есть прикольные варианты - один мой бывший коллега например пишет gvisor. Что в общем drawbridge from Galen Hunt на стероидах.
а cgroups как раз и есть chroot на стероидах если поглядеть на историю развития. А докер это просто пакаджинг и тулсет во круг cgroups ;)
Вообще, Docker + Kubernetes - опенсорсизация вот этого. Но, поскольку своих 100500 серверов с 100500**2 задачами почти ни у кого нет, мейнстримный юзкейс - пабырику развернуть среду разработки на рабочей станции у новичка в команде, чтобы побыстрее педалить начал. Ну и с модой на микросервисы меньше конфигурить надо, если всё одной кучей в прод вываливать. Это как с одной известной технологией обмена научными статьями, содержащими перекрёстные ссылки для физиков ЦЕРНА, дико успешна, но используется совершенно не по первоначальному назначению.
kostik78
Уже с Приветом
Posts: 3180
Joined: 17 May 2007 14:07

Re: Docker

Post by kostik78 »

voyager3 wrote: 12 Nov 2018 01:15
kostik78 wrote: 11 Nov 2018 23:21
alex_127 wrote: 11 Nov 2018 16:27
kostik78 wrote: 10 Nov 2018 08:21
Ion Tichy wrote: 09 Nov 2018 19:06 Как бы ни разу не ВМ и только слеганца изолированная. Как тут, на Привете, кто-то сказал про Докер - это chroot с бантиками и рюшечками.
хехе не думал что фраза приживеться ;) Я эту фразу стал использовать после удачной импровизации во время ответа на вопрос на одном из компанейских техталков 4-4.5 года назад.
Технически это все таки cgroups. Но есть прикольные варианты - один мой бывший коллега например пишет gvisor. Что в общем drawbridge from Galen Hunt на стероидах.
а cgroups как раз и есть chroot на стероидах если поглядеть на историю развития. А докер это просто пакаджинг и тулсет во круг cgroups ;)
Вообще, Docker + Kubernetes - опенсорсизация вот этого. Но, поскольку своих 100500 серверов с 100500**2 задачами почти ни у кого нет, мейнстримный юзкейс - пабырику развернуть среду разработки на рабочей станции у новичка в команде, чтобы побыстрее педалить начал. Ну и с модой на микросервисы меньше конфигурить надо, если всё одной кучей в прод вываливать. Это как с одной известной технологией обмена научными статьями, содержащими перекрёстные ссылки для физиков ЦЕРНА, дико успешна, но используется совершенно не по первоначальному назначению.
А причем тут борг с к8с (кои являются schedulers) если разговор про cgroups ? K8 вообще docker использует. А borg/Mesos кроме cgroups придерживает pure processes ?
voyager3
Уже с Приветом
Posts: 1951
Joined: 11 Mar 2015 01:12

Re: Docker

Post by voyager3 »

kostik78 wrote: 12 Nov 2018 01:48
voyager3 wrote: 12 Nov 2018 01:15
kostik78 wrote: 11 Nov 2018 23:21
alex_127 wrote: 11 Nov 2018 16:27
kostik78 wrote: 10 Nov 2018 08:21
хехе не думал что фраза приживеться ;) Я эту фразу стал использовать после удачной импровизации во время ответа на вопрос на одном из компанейских техталков 4-4.5 года назад.
Технически это все таки cgroups. Но есть прикольные варианты - один мой бывший коллега например пишет gvisor. Что в общем drawbridge from Galen Hunt на стероидах.
а cgroups как раз и есть chroot на стероидах если поглядеть на историю развития. А докер это просто пакаджинг и тулсет во круг cgroups ;)
Вообще, Docker + Kubernetes - опенсорсизация вот этого. Но, поскольку своих 100500 серверов с 100500**2 задачами почти ни у кого нет, мейнстримный юзкейс - пабырику развернуть среду разработки на рабочей станции у новичка в команде, чтобы побыстрее педалить начал. Ну и с модой на микросервисы меньше конфигурить надо, если всё одной кучей в прод вываливать. Это как с одной известной технологией обмена научными статьями, содержащими перекрёстные ссылки для физиков ЦЕРНА, дико успешна, но используется совершенно не по первоначальному назначению.
А причем тут борг с к8с (кои являются schedulers) если разговор про cgroups ? K8 вообще docker использует. А borg/Mesos кроме cgroups придерживает pure processes ?
При том, что задачи выполняются в контейнерах для нарезки ресурсов и изоляции, что позволяет максимально загрузить вычислительные мощности при минимальных накладных расходах на изоляцию.
User avatar
Ion Tichy
Уже с Приветом
Posts: 13460
Joined: 07 Dec 2004 04:00
Location: Москва->CO

Re: Docker

Post by Ion Tichy »

voyager3 wrote: 12 Nov 2018 02:55...при минимальных накладных расходах на изоляцию.
Ага, расскажите мне про изоляцию в Докере.
Как же это вы без гравицаппы пепелац выкатываете из гаража? Это непорядок...
User avatar
valchkou
Уже с Приветом
Posts: 4185
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

Re: Docker

Post by valchkou »

кто знает как можно внутрь докер контейнера передать внешний порт хоста на который он смапился?
к примеру если я стартую сервис в докере на 8080. он мапится на случайный внешний порт например 52314
как можно сообщить моему сервису этот внешний 52314 порт?
kostik78
Уже с Приветом
Posts: 3180
Joined: 17 May 2007 14:07

Re: Docker

Post by kostik78 »

voyager3 wrote: 12 Nov 2018 02:55
При том, что задачи выполняются в контейнерах для нарезки ресурсов и изоляции, что позволяет максимально загрузить вычислительные мощности при минимальных накладных расходах на изоляцию.
Чего то Вы все вкучу свалили.

cgroups предоставляют изоляцию и основа для идеи был chroot. LXC первый екзекутор для cgroups но был достаточно сложен для правильной настройки, что дало толчек Docker engine который являеться image packager и настраивает cgroups. Ввиду некоторых фундоментальных просчетов в секьюрити был разработан Rocket engine что близок к Docker. Также есть universal Mesos executor что в принципе тоже engine для cgroups.

Борг и его опен соурс побратим Mesos - это ворклоад schedulers. Контейнеры - один из нескольких типов ворклоада для них.
k8s и Docker swarm это тоже ворклоад schedulers но расчитаны только на контейнеры.

P.S. Docker кстати LXC использует, также как Mesos unviresal executor. Про Rocket engine не знаю точно. Еще есть LXD от каноникал - он тоже использует LXC
Last edited by kostik78 on 12 Nov 2018 04:08, edited 3 times in total.
kostik78
Уже с Приветом
Posts: 3180
Joined: 17 May 2007 14:07

Re: Docker

Post by kostik78 »

valchkou wrote: 12 Nov 2018 03:23 кто знает как можно внутрь докер контейнера передать внешний порт хоста на который он смапился?
к примеру если я стартую сервис в докере на 8080. он мапится на случайный внешний порт например 52314
как можно сообщить моему сервису этот внешний 52314 порт?
нужен сервис дискавери или registry - k8s, docker swarm предоставлюят это в пакадже. Mesos это больше framework чем продукт сам по себе он не дает но можно вытащить через айпиай или использовать marathon. Другой способ можно использовать DNS SRV но как правило большинство продуктов не потдерживаю дискавери через srv то есть треба девалопить ;)
ptun
Уже с Приветом
Posts: 1453
Joined: 17 Sep 2018 17:42

Re: Docker

Post by ptun »

АццкоМото wrote: 09 Nov 2018 18:27 Ну и нах это нужно в продакшн?
Нах не нужно. На последних 4 местах моей работы, включая нынешнее, докер используется как презерватив. Достал, поелозил, выбросил. Отличная штука для тестирования, сборок и прочей такой фигни. Но на продакшене не используется.
ptun
Уже с Приветом
Posts: 1453
Joined: 17 Sep 2018 17:42

Re: Docker

Post by ptun »

Ах да, jails во freeBSD кто помнит?
mitnlag
Администратор
Posts: 2127
Joined: 18 Apr 2010 18:09

Re: Docker

Post by mitnlag »

Докер - удобная обвязка вокруг cgroups, lxc и iptables. Без него жизнь есть. Если подходит докер - используете, не подходит - не используете. Никакой абсолютной истины нет.

Смысл контейнеризации в том, чтобы шипать завершенный образ, не требующий зависимостей, кроме самого докера.

Разница с вирт машиной в том, что все контейнеры работают под текущим ядром, а не ранают свои ядра.
Palych
Уже с Приветом
Posts: 13975
Joined: 16 Jan 2001 10:01

Re: Docker

Post by Palych »

Глупый вопрос:
А файлы Докера видны со стороны хоста?
kostik78
Уже с Приветом
Posts: 3180
Joined: 17 May 2007 14:07

Re: Docker

Post by kostik78 »

Palych wrote: 15 Nov 2018 15:37 Глупый вопрос:
А файлы Докера видны со стороны хоста?
Если есть рут доступ на хосте то да. Нужно только место правильное знать, точнее спросить у cgroups :)

Return to “Работа и Карьера в IT”