@docker_ru

Страница 1120 из 1375
Viktor
17.03.2019
19:15:57
Имя это просто строка в общем
спасибо. но это мне непомогло. я понимаю что разные пользователи и прочее. но мне надо чтобы права выставились правильно или пользователя создать или еще чего решение дайте если знаете плиз

Ну, типа docker run -e UID=1000 ...
использую docker-compose

George
17.03.2019
19:16:20
Далее у тебя отрабатывает docker-entrypoint.sh, который изначально из-под рута, делает chown на файлы, а потом запускает твой приклад под UID из ENV

использую docker-compose
Это не важно. Докер-компоуз это обёртка к докеру

Google
George
17.03.2019
19:17:14
Смотри. Если тебе интересно решать проблему с правами - я запретить не могу. Но могу сказать, что лучше ее избежать на входе

George
17.03.2019
19:17:41
Я предложил один из вариантов

Ещё обрати внимание на https://medium.com/@mccode/understanding-how-uid-and-gid-work-in-docker-containers-c37a01d01cf

Т.е. чисто гипотетически ты можешь замаппить юзера внутри докера на любого юзера снаружи

Viktor
17.03.2019
19:19:52
вот, это и пытаюсь сделать. на локалке все ок а проде чет непашет

Nazary
17.03.2019
19:55:19


Олег
17.03.2019
19:56:33
Net - сеть I/o - in/out. Дальше сам плс.

Nazary
17.03.2019
19:57:19
Net - сеть I/o - in/out. Дальше сам плс.
я так и думал, но почему там так много тогда, если это сеть...

George
17.03.2019
19:57:44
я так и думал, но почему там так много тогда, если это сеть...
Потому что все контейнеры через сеть общаются?

Даже когда в рамках одного сервера запущены ?

Nazary
17.03.2019
19:58:02
только 2(

не думаю что на редис так дофига идет

Google
Sergey
17.03.2019
19:58:27
я так и думал, но почему там так много тогда, если это сеть...
всмысле почему? вход выход по интерфейсу

значения парсятся невернно вестимо

Andrey
17.03.2019
23:28:45
Ребят, а можно ли узнать какой memory limit установлен на контейнер изнутри него?

Maxim
17.03.2019
23:36:44
Ребят, а можно ли узнать какой memory limit установлен на контейнер изнутри него?
shared memory 64Mb вроде бы по умолчанию, но я мог неправильно понять ваш вопрос

Andrey
17.03.2019
23:37:58
shared memory 64Mb вроде бы по умолчанию, но я мог неправильно понять ваш вопрос
Не, я имею в виду немного другое. Вот запустили контейнер с лимитом скажем в 100мб, как мне об этом узнать внутри контейнера? Где взять это значение?

Maxim
17.03.2019
23:42:52
docker run --memory 100m
Отлично, теперь у вас задача внутри контейнера выполнить команду которая вам вернёт это значение?

Andrey
17.03.2019
23:43:00
Ну или если есть какие то более правильные способы сказать приложению внутри, сколько ему жрать можно.

Maxim
17.03.2019
23:44:37
Yep
Может при запуске контейнера создать переменную окружения -e CURRENT_MEMORY_LIMIT=100M ? Как вы думаете?

Andrey
17.03.2019
23:45:32
Может при запуске контейнера создать переменную окружения -e CURRENT_MEMORY_LIMIT=100M ? Как вы думаете?
Ну можно конечно, но так то можно и аргументом при запуске передавать. Хочется меньше телодвижений. Да и мне кажется где-то в контейнере это все же можно получить из коробки

Maxim
17.03.2019
23:47:02
Ну можно конечно, но так то можно и аргументом при запуске передавать. Хочется меньше телодвижений. Да и мне кажется где-то в контейнере это все же можно получить из коробки
А чем вам не подходит способ передачи информации снаружи? Зачем вам нужно что то дергать внутри? Передали снаружи и нет необходимости проверять что либо внутри

Andrey
17.03.2019
23:48:37
А чем вам не подходит способ передачи информации снаружи? Зачем вам нужно что то дергать внутри? Передали снаружи и нет необходимости проверять что либо внутри
Ну как зачем. Чтоб меньше телодвижений нужно было для запуска. Чтобы не обрабатывать ситуацию когда лимит не передан и вот это вот все.

Andrey
17.03.2019
23:52:10
Вы запускаете контейнер, верно? У вас есть readme.md или что то типа того, может даже bash скрипт написали, что вы ещё пытаетесь усовершенствовать?
Я пытаюсь наоборот упростить. Чтобы не нужна была ридмишка и обвяз скриптовый. Чтобы работало максимально прозрачно. Дали лимит, берем, не дали, живем дальше.

О, кажись нашел! cat /sys/fs/cgroup/memory/memory.limit_in_bytes

Maxim
17.03.2019
23:53:49
Я пытаюсь наоборот упростить. Чтобы не нужна была ридмишка и обвяз скриптовый. Чтобы работало максимально прозрачно. Дали лимит, берем, не дали, живем дальше.
Вы один параметр указали снаружи, а теперь вы хотите придумать как этот параметр проверить изнутри с помощью сложных алгоритмов в место того что бы так же как первый параметр передать его снаружи, где логика? Зачем так делать?

Andrey
17.03.2019
23:56:04
Вы один параметр указали снаружи, а теперь вы хотите придумать как этот параметр проверить изнутри с помощью сложных алгоритмов в место того что бы так же как первый параметр передать его снаружи, где логика? Зачем так делать?
Логика в том что эти лимиты я буду передавать на окружениях. А например те же разрабы знать не знают о них, а если бы знали, не с пользовали бы. Потому что в плане разработки на них почти плевать. Так вот зачем в такой ситуации заставлять всех страдать с передачей этих параметров если им это не надо?

Google
Andrey
17.03.2019
23:57:49
Создайте bash скрипт, что вас останавливает?
Зачеееем? Зачем писать скрипт если его можно не писать? Можно просто взять лимиты внутри и не усложнять запуск снаружи.

Kiss и все такое.

Maxim
17.03.2019
23:59:43
Зачеееем? Зачем писать скрипт если его можно не писать? Можно просто взять лимиты внутри и не усложнять запуск снаружи.
Наверное вы правы и нет никакой необходимости писать bash скрипты, они же сложные и только мешают

Kiss и все такое.
Точно, kiss все решает

Теперь пишем программу которая внутри увидет что вы снаружи указали 100mb

Andrey
18.03.2019
00:03:12
Наверное вы правы и нет никакой необходимости писать bash скрипты, они же сложные и только мешают
Ну ок, давайте сравним 2 решения. Мое: Приложение при запуске читает /sys/fs/cgroup/memory/memory.limit_in_bytes и просто использует его. На этом все. Ваше: Баш скрипт запуска и установки этой переменной снаружи. Еще некий скрипт чтения этой переменной. А еще обязательно обработка ситуации когда лимит таки не передали (например запустили просто руками через docker run) И в завершение еще написать ридми чтобы этим мог воспользоваться каждый.

Andrey
18.03.2019
00:05:37
Maxim
18.03.2019
00:05:39
Давайте.
Пришлите скрин где вы выделяете 100mb контейнеру, пожалуйста

Alexey
18.03.2019
00:06:18
В контейнере Java? ?

Andrey
18.03.2019
00:06:52
Но тут пока без кубиков
Да особо без разницы. Хоть в кубе крутить его, хоть без. Мое решение автоматом будет работать везде. Для вашего надо будет думать как в каждом конкретном случае сунуть переменную окружения. Да, это не сложно, но работа все же лишняя.

Andrey
18.03.2019
00:07:55
У вас есть пример или как?
Пример чего вам нужен? Как докер запустить?))

Maxim
18.03.2019
00:08:01
В контейнере Java? ?
С java отдельная песня

Google
Maxim
18.03.2019
00:08:24
Пример чего вам нужен? Как докер запустить?))
Пример запуска контейнера или сервиса

Alexey
18.03.2019
00:08:57
Мне что-то кажется что он для Java хочет выставлять лимиты тип 90% от контейнера))

Andrey
18.03.2019
00:09:12
Как вы выделяете 100mb
Писал же, например docker run --memory 100m или лимиты в кубике, или еще в каком нибудь оркестраторе.

Maxim
18.03.2019
00:09:42
Писал же, например docker run --memory 100m или лимиты в кубике, или еще в каком нибудь оркестраторе.
Рабочий пример того что вы пытаетесь запустить, пожалуйста

Мы же вам пытаемся помочь

Andrey
18.03.2019
00:10:18
Мне что-то кажется что он для Java хочет выставлять лимиты тип 90% от контейнера))
Смысл тот же, тока nodejs. Фронты написали каку которая жрет все что дают, прям как джава. ?

Andrey
18.03.2019
00:10:56
Мы же вам пытаемся помочь
Вы уже по моему пытаетесь переубедить меня в том что надо написать скриптов вместо того чтобы юзать нативные инструменты.)

Andrey
18.03.2019
00:13:40
У вас есть пример?
Нет, прямо под рукой нет. Но я не вижу разницы от того что будет внутри контейнера. Не важно что пойдет и прочитает файлик с sysfs.

https://firstvds.ru/habrahabr/evans_11.pdf
Неее, этим уже пусть разрабы занимаются)

У вас есть пример?
Если без примера прям совсем сложно то давайте предположим что есть внутри контейнера некая команда /app --memory-limit, которая ждет значение лимита.

Maxim
18.03.2019
00:16:48
Если без примера прям совсем сложно то давайте предположим что есть внутри контейнера некая команда /app --memory-limit, которая ждет значение лимита.
Вы сказали что вы запускаете контейнер командой где четко указываете --memory 100mb, я правильно помню? Это ваш пример?

https://firstvds.ru/habrahabr/evans_11.pdf
Коллега, очень ржачная штука!

Andrey
18.03.2019
00:18:40
Вы сказали что вы запускаете контейнер командой где четко указываете --memory 100mb, я правильно помню? Это ваш пример?
Нет не правильно. Я просто говорю о том что мне нужно получить лимиты внутри. Не важно как они установлены, руками через docker run, через лимиты k8s или как-то еще. Просто есть ситуация, контейнер с лимитами, их надо сообщить приложению.

Maxim
18.03.2019
00:21:17
Вы меня троллите?)))
Я ещё даже не начинал, я сообщил вам что неправильно вас понял и попросил рассказать о задаче которую вы пытаетесь решить

Google
Svyatoslav
18.03.2019
00:21:26
клонит в сон, по этому могу что-то не доглядеть в сообщении

остальные лимиты ток тут https://docs.docker.com/config/containers/resource_constraints/ + cgroups

Andrey
18.03.2019
00:24:37
Так, ребят. У меня 3 часа ночи, но я вроде еще адекватен. Задача, дать приложению в контейнере понять сколько памяти ему можно жрать==какой лимит памяти стоит у контейнера. Я нагуглил решение с чтением /sys/fs/cgroup/memory/memory.limit_in_bytes внутри контейнера. На текущем этапе дискуссии уже просто хочу узнать, есть ли минусы такого решения, подводные камни.

Petr
18.03.2019
00:26:39
блин я эти лимиты когда ставил, приложение жестоко тупить начинало

Svyatoslav
18.03.2019
00:26:59
по задаче выше уже выданы все нужные ответы и ссылки

Andrey
18.03.2019
00:28:56
Maxim
18.03.2019
00:29:08
по задаче выше уже выданы все нужные ответы и ссылки
Мне что то подсказывает что тут поиски оправдания своего решения)

Svyatoslav
18.03.2019
00:29:30
))

Andrey
18.03.2019
00:29:50
Мне что то подсказывает что тут поиски оправдания своего решения)
Скорее попытки понять, зачем писать скриптовый обвяз если его можно не писать?

Andrey
18.03.2019
00:30:23
У вас лишний шаг - "прочитать"
Эммм, как как можно взять параметр не читая его? ??

Maxim
18.03.2019
00:30:53
Эммм, как как можно взять параметр не читая его? ??
Представьте что его там может не оказаться

Эммм, как как можно взять параметр не читая его? ??
Передайте необходимое вам значение, а не читайте

Andrey
18.03.2019
00:32:16
Какие ваши действия?
Перед этим я почитаю доку и что-то мне подсказывает что вероятность этого намного ниже чем забывчивый разраб который не передал env. Или кривой темплейт в оркестраторе.

Andrey
18.03.2019
00:32:47

Страница 1120 из 1375