Docker
-
- Уже с Приветом
- Posts: 9388
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
Re: Docker
Следуя модным трендам, наше начальство тоже теперь начало ковыряться в Докере (Docker for Windows). Ну понятно дело и меня заставили. Вот у меня вопрос такой.. Есть у меня простая база данных. Мне нужно ее запихать в докер image. База будет в ms sql server express. Следовательно первая строчка в dockerfile :
FROM microsoft/mssql-server-windows-express
сам microsoft/mssql-server-windows-express зависит от Windows Server Core.
В итоге размер моего image получается примерно 14Gb
Ну и нах нужен такой файл? Потом его выкладывать в репозиторий, а клиенту говорить "ну вы вот скачайте этот файлик размером 14 гигов, это и будет ваше приложение"
Может я что не так делаю?
FROM microsoft/mssql-server-windows-express
сам microsoft/mssql-server-windows-express зависит от Windows Server Core.
В итоге размер моего image получается примерно 14Gb
Ну и нах нужен такой файл? Потом его выкладывать в репозиторий, а клиенту говорить "ну вы вот скачайте этот файлик размером 14 гигов, это и будет ваше приложение"
Может я что не так делаю?
-
- Уже с Приветом
- Posts: 9388
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
-
- Уже с Приветом
- Posts: 1679
- Joined: 04 Oct 2006 23:30
- Location: Las Vegas
Re: Docker
Ну амазон же предлагает ECS и Fargate юным любителям докера - вполне себе продакшен левел сервисы.
-
- Уже с Приветом
- Posts: 4185
- Joined: 27 Apr 2011 03:43
- Location: Сергели ->Chicago
Re: Docker
а без докера каков размер файла который качает ваш клиент?shadow7256 wrote: ↑15 Nov 2018 16:11 Следуя модным трендам, наше начальство тоже теперь начало ковыряться в Докере (Docker for Windows). Ну понятно дело и меня заставили. Вот у меня вопрос такой.. Есть у меня простая база данных. Мне нужно ее запихать в докер image. База будет в ms sql server express. Следовательно первая строчка в dockerfile :
FROM microsoft/mssql-server-windows-express
сам microsoft/mssql-server-windows-express зависит от Windows Server Core.
В итоге размер моего image получается примерно 14Gb
Ну и нах нужен такой файл? Потом его выкладывать в репозиторий, а клиенту говорить "ну вы вот скачайте этот файлик размером 14 гигов, это и будет ваше приложение"
Может я что не так делаю?
-
- Уже с Приветом
- Posts: 7956
- Joined: 08 Nov 2004 12:24
- Location: GA
Re: Docker
Я не гуру докера, только учусь, но мне не понятно, зачем засовывать базу в образ? Изначально странный посыл.shadow7256 wrote: ↑15 Nov 2018 16:11 Следуя модным трендам, наше начальство тоже теперь начало ковыряться в Докере (Docker for Windows). Ну понятно дело и меня заставили. Вот у меня вопрос такой.. Есть у меня простая база данных. Мне нужно ее запихать в докер image. База будет в ms sql server express. Следовательно первая строчка в dockerfile :
FROM microsoft/mssql-server-windows-express
сам microsoft/mssql-server-windows-express зависит от Windows Server Core.
В итоге размер моего image получается примерно 14Gb
Ну и нах нужен такой файл? Потом его выкладывать в репозиторий, а клиенту говорить "ну вы вот скачайте этот файлик размером 14 гигов, это и будет ваше приложение"
Может я что не так делаю?
Ок, если очень надо, я бы сделал так:
FROM мс образ с сикуэл.
ADD моя база
А вообще подмаунтил бы базу к образу, разве клиенту не нужно сохранять изменения в ней? Она типа рид онли? Создавать свои образы имхо зло, потому что стандартный образ типа мс кор скорее всего на машине уже есть.
-
- Уже с Приветом
- Posts: 9388
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
Re: Docker
без докера у нас обычный инстальник размером 70Мб.valchkou wrote: ↑15 Nov 2018 17:08а без докера каков размер файла который качает ваш клиент?shadow7256 wrote: ↑15 Nov 2018 16:11 Следуя модным трендам, наше начальство тоже теперь начало ковыряться в Докере (Docker for Windows). Ну понятно дело и меня заставили. Вот у меня вопрос такой.. Есть у меня простая база данных. Мне нужно ее запихать в докер image. База будет в ms sql server express. Следовательно первая строчка в dockerfile :
FROM microsoft/mssql-server-windows-express
сам microsoft/mssql-server-windows-express зависит от Windows Server Core.
В итоге размер моего image получается примерно 14Gb
Ну и нах нужен такой файл? Потом его выкладывать в репозиторий, а клиенту говорить "ну вы вот скачайте этот файлик размером 14 гигов, это и будет ваше приложение"
Может я что не так делаю?
-
- Уже с Приветом
- Posts: 9388
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
Re: Docker
ситуация такая. Есть веб приложение, которое использует базу данных. Решили это все дело запихать в контейнер. Сделали два images - в одном база данных, в другом - веб приложение. Билдится все через docker-compose. Имидж веб приложения зависит от имиджа базы данных.
version: "3"
services:
db:
build: ./sqlexpress
ports:
- 1444:1433
app:
build: ./app
ports:
- 1234:1234
depends_on:
- db
tty: true
В итоге получили два имиджа - один размером 14 гигов (там где база данных), второй - 4 гига (там где веб приложение).
Запускаем через docker-compose up/down. Запускается и работает нормально... но.. 18 гигов для двух имиджей?
да нахер это надо когда наш обычный инстальник весит 70 мегов. Ну да клиенту надо будет самому поставить базу данных перед этим ну и что?
мне непонятен смысл этих контейнеров..
-
- Уже с Приветом
- Posts: 1650
- Joined: 26 Jan 2006 20:42
Re: Docker
18 гигов скачаются только 1 раз (так же как и «Ну да клиенту надо будет самому поставить базу данных перед этим ну и что?»). Дальше при обновлении приложения будут скачиваться только изменившиеся слои имиджа.shadow7256 wrote:ситуация такая. Есть веб приложение, которое использует базу данных. Решили это все дело запихать в контейнер. Сделали два images - в одном база данных, в другом - веб приложение. Билдится все через docker-compose. Имидж веб приложения зависит от имиджа базы данных.
version: "3"
services:
db:
build: ./sqlexpress
ports:
- 1444:1433
app:
build: ./app
ports:
- 1234:1234
depends_on:
- db
tty: true
В итоге получили два имиджа - один размером 14 гигов (там где база данных), второй - 4 гига (там где веб приложение).
Запускаем через docker-compose up/down. Запускается и работает нормально... но.. 18 гигов для двух имиджей?
да нахер это надо когда наш обычный инстальник весит 70 мегов. Ну да клиенту надо будет самому поставить базу данных перед этим ну и что?
мне непонятен смысл этих контейнеров..
Sent from my iPhone using Tapatalk
-
- Уже с Приветом
- Posts: 606
- Joined: 03 Sep 2000 09:01
- Location: Irvine, CA
Re: Docker
реляционная база в production на докере - это из серии обезьяна с гранатой..выползают ReplicationController, StatefulSets и прочие матерные слова.. докер не для баз данных придумывался..shadow7256 wrote: ↑15 Nov 2018 16:11 Следуя модным трендам, наше начальство тоже теперь начало ковыряться в Докере (Docker for Windows). Ну понятно дело и меня заставили. Вот у меня вопрос такой.. Есть у меня простая база данных. Мне нужно ее запихать в докер image. База будет в ms sql server express. Следовательно первая строчка в dockerfile :
FROM microsoft/mssql-server-windows-express
сам microsoft/mssql-server-windows-express зависит от Windows Server Core.
В итоге размер моего image получается примерно 14Gb
Ну и нах нужен такой файл? Потом его выкладывать в репозиторий, а клиенту говорить "ну вы вот скачайте этот файлик размером 14 гигов, это и будет ваше приложение"
Может я что не так делаю?
-
- Уже с Приветом
- Posts: 3170
- Joined: 17 May 2007 14:07
Re: Docker
Данные куда SQL пишет не должны быть на файловой системы контейнера. Они должны быть подключены как external volume. Иначе тут несколько проблем:
1) все что сохранено на файловой системе контейнера во время работы будет утеряно после удаления контейнера
2) увеличение размера файловой системы контейнера сделано пессимистично, то есть будет переодически сильно торомозить на записи есть нужно делать resize.
3) Ну и image будет включать данные базы на момент построения image
1) все что сохранено на файловой системе контейнера во время работы будет утеряно после удаления контейнера
2) увеличение размера файловой системы контейнера сделано пессимистично, то есть будет переодически сильно торомозить на записи есть нужно делать resize.
3) Ну и image будет включать данные базы на момент построения image
-
- Уже с Приветом
- Posts: 7723
- Joined: 29 Mar 2000 10:01
- Location: Kirkland,WA
Re: Docker
убирает вопросы а какую базу данных? а как на вопросы отвечать? ой, у меня уже одна стоит, можно к ней подключить?
короче отвечает веяниям партии - чтобы даже идиот смог запустить.
ну а поскольку в продакшен все компьютеры идиоты то это помогает тоже.
а относительно гранат - они бесплатно с любой базой данных. its a gift from us.
короче отвечает веяниям партии - чтобы даже идиот смог запустить.
ну а поскольку в продакшен все компьютеры идиоты то это помогает тоже.
а относительно гранат - они бесплатно с любой базой данных. its a gift from us.
-
- Уже с Приветом
- Posts: 9388
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
Re: Docker
То есть допустим запихать ASP.NET MVC + Sql Server приложение в контейнер не стоит?
-
- Уже с Приветом
- Posts: 9388
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
-
- Уже с Приветом
- Posts: 9388
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
-
- Уже с Приветом
- Posts: 3170
- Joined: 17 May 2007 14:07
Re: Docker
Ну например у Mysql data folder. Место куда пишет MySQl server данные. Тоже кстати относится к логам.
-
- Уже с Приветом
- Posts: 10708
- Joined: 22 Jul 2006 20:19
Re: Docker
В общем еще одна технология, ориентированная на то чтобы сделать быстро, кинуть в продакшен а потом, так же быстрь и с песнями, патчить баги, коих по причине быстроты создания, было сделано немеренное количество.
-
- Уже с Приветом
- Posts: 606
- Joined: 03 Sep 2000 09:01
- Location: Irvine, CA
Re: Docker
причём зачастую не application level баги, а container..
https://thehftguy.com/2016/11/01/docker ... f-failure/
статья, правда, немного старовата, за 2 года стало, думаю, получше
-
- Уже с Приветом
- Posts: 3170
- Joined: 17 May 2007 14:07
Re: Docker
Почитал, много из написаного - правда и уже давно устранено.SashaKR wrote: ↑15 Nov 2018 22:18причём зачастую не application level баги, а container..
https://thehftguy.com/2016/11/01/docker ... f-failure/
статья, правда, немного старовата, за 2 года стало, думаю, получше
В целом человек жалуется на:
а) Не разобрались толком с новым продуктом и огребли много проблем (что в принципе действительно для любого сложного продукта)
б) Ссылки на отказ использовать докера девелоперами выглядят тоже из раздела: нам эта хрень не нужна мы и так поживем
Мое ИМХО на статью
P.S. Я никогда не слышал что есть какие то специфичные проблемы в докере что мешают нормально работать Erlang.
-
- Уже с Приветом
- Posts: 11999
- Joined: 08 Sep 2006 20:07
- Location: Силиконка
Re: Docker
Вот прям приятно послушать специалиста - взвешенно, авторитетно, аргументированно.
Мир Украине. Свободу России.
-
- Уже с Приветом
- Posts: 2399
- Joined: 16 Jul 2004 00:32
- Location: NY, NY
Re: Docker
Возвращаясь к напечатанному: так почему все-таки Docker и контейнеры это не VM в общем случае?
Это что, типа снобизм такой? ))
Какая разница для апликации что именно виртуализируется, железо или ядро, чтобы называться VM?
Это что, типа снобизм такой? ))
Какая разница для апликации что именно виртуализируется, железо или ядро, чтобы называться VM?
-
- Уже с Приветом
- Posts: 5737
- Joined: 13 Feb 2016 18:50
- Location: Кемерово
Re: Docker
разница в зависимостях при создании имиджей. Берешь имидж jdk-8, наследуешь в имидж скажем jboss 7.1, имидж jboss наследуюешь в имидж своей апликухи.
Надо пропатчить jdk, пропатчил имидж jdk, всё остальное, что его унаследовало пропатчится тоже., то самое с jboss например и т.д.
-
- Уже с Приветом
- Posts: 3170
- Joined: 17 May 2007 14:07
Re: Docker
В случае VM идет полная виртуализация создается полная эммуляция - CPU, Memory и всей остальной железной подяги. По этой причине можно в VM подымать winodws в линук и наборот ибо hypervisor может эмулировать систему полностью.
Контейнеры это не виртуализация. Контейнер это обычный системный процесс который изолирован от остальных с помощью cgroups, на него наложены квоты, создан fake root (chroot). Все контейнеры шарять ядро хоста. Соотвественно нельзя запустить Windows в контейнере.
-
- Уже с Приветом
- Posts: 3170
- Joined: 17 May 2007 14:07
Re: Docker
Не совсем так. Если Вы не перестроили jboss после перестройки jdk8 image, jboss имадж будет все еще ссылаться на старый layer of jdk8 image и использовать не пропаченый jdk image. То бишь для патчинга потребуется перестройка всего дерева, но фактически будет перестроен jdk8 image, а все остальные обновлять links to base image. Ничего автоматически не происходит, к сожаленью или счастьюВячеслав Викторович wrote: ↑16 Nov 2018 14:12разница в зависимостях при создании имиджей. Берешь имидж jdk-8, наследуешь в имидж скажем jboss 7.1, имидж jboss наследуюешь в имидж своей апликухи.
Надо пропатчить jdk, пропатчил имидж jdk, всё остальное, что его унаследовало пропатчится тоже., то самое с jboss например и т.д.
-
- Уже с Приветом
- Posts: 7956
- Joined: 08 Nov 2004 12:24
- Location: GA
Re: Docker
Насколько я понимаю все вышесказанное справедливо для *никс систем, докер на винде требует виртуализации, поэтому там используются или ХайперВи или ВиБокс (ранее). А так же поэтому на винде имиджи тяжеленные и медленные.kostik78 wrote: ↑16 Nov 2018 15:09В случае VM идет полная виртуализация создается полная эммуляция - CPU, Memory и всей остальной железной подяги. По этой причине можно в VM подымать winodws в линук и наборот ибо hypervisor может эмулировать систему полностью.
Контейнеры это не виртуализация. Контейнер это обычный системный процесс который изолирован от остальных с помощью cgroups, на него наложены квоты, создан fake root (chroot). Все контейнеры шарять ядро хоста. Соотвественно нельзя запустить Windows в контейнере.
-
- Уже с Приветом
- Posts: 2399
- Joined: 16 Jul 2004 00:32
- Location: NY, NY
Re: Docker
Это все как бы понятно. Вопрос был не про технику, а в принципе тем более, что, как было замечено выше, технология реализации контейнеров под линухом и виндами сильно разная.kostik78 wrote: ↑16 Nov 2018 15:09В случае VM идет полная виртуализация создается полная эммуляция - CPU, Memory и всей остальной железной подяги. По этой причине можно в VM подымать winodws в линук и наборот ибо hypervisor может эмулировать систему полностью.
Контейнеры это не виртуализация. Контейнер это обычный системный процесс который изолирован от остальных с помощью cgroups, на него наложены квоты, создан fake root (chroot). Все контейнеры шарять ядро хоста. Соотвественно нельзя запустить Windows в контейнере.
Т.е. в "вину" контейнерам ставится невозможность исполнять чужеродную ОС. Так? Но это ведь не было самоцелью виртуализации как таковой? Насколько я понимаю, целью было разделение ресурсов и изоляция приложения или группы приложений, в конечном итоге. То, что таким приложением может быть сама ОС это, так сказать, побочный эффект.
Опять же, разница чисто технологическая с точки зрения администрирования. Сдается мне, что это - чисто вопрос стереотипов. Никто же не возмущается когда Java VM носит столь гордое имя! ))Вячеслав Викторович wrote: ↑16 Nov 2018 14:12 разница в зависимостях при создании имиджей. Берешь имидж jdk-8, наследуешь в имидж скажем jboss 7.1, имидж jboss наследуюешь в имидж своей апликухи.
Надо пропатчить jdk, пропатчил имидж jdk, всё остальное, что его унаследовало пропатчится тоже., то самое с jboss например и т.д.