Maxim
31.05.2019
01:56:41
Тоесть, теперь у вас БД и докер реестр висят на самом NAS?
ну не прям у меня, я там вообще в гости зашел случайно, но в целом история там была похожа на вашу, тоже БД, так же реестр, так же бэкапы данных из контейнеров. В общем это не хайлоад, но информация для проекта - ценная и потерять её было - нельзя.
Ситуация с монтированием для этой не очень крупной, я бы даже сказал небольшой компании была в крайней степени "неприятная", а всего лишь нужно было не монтировать этот NAS куда попало и кем попало, а перенести на NAS пару тройку сервисов, это чуть дольше чем монтировать.
Вариантов много, все зависит от условий и ситуации. Монтировать лучше в тех случаях когда ценность информации достаточно низкая, а времени только на то что бы побыстрому примонтировать пока никто не видел
George
31.05.2019
05:36:17
Поверх которых вольюм докера и бд
Это скорее вопрос не надёжности, а производительности. И, да, сетевые лаги - тормоза в базе вплоть до отказа
Google
George
31.05.2019
05:37:07
Поэтому в серьезных решениях пускают отдельно трафик для приложения и отдельно трафик на сторедж.
Не вижу никаких проблем сделать такой вариант - подключить nfs, например, в /mnt/networkstorage
А /mnt/networkstorage/volumes разместить данные докера
Главное - чтобы докер стартовал после nfs, иначе могут быть нюансы. Ну, и пермишены и все такое
Ну, и не nfs монтируем внутрь контейнера, а контейнер запускаем поверх nfs
Dmitry
31.05.2019
06:54:24
пацаны и пацанессы, а какие нынче бестпрактисы по отношению к контейнерам и swap utilization?
George
31.05.2019
06:54:51
в смысле - отключать ли своп или нет?
Dmitry
31.05.2019
06:55:35
ну допустим я за то чтобы отключать, но это может быть не всегда верно, какие еще есть варианты?
George
31.05.2019
06:56:18
в теории можно селективно настраивать свопинг для каждого. Но бест практис свопинг отключать. Но есть альтернативное мнение. Ща кину статью
https://habr.com/ru/company/flant/blog/348324/
Mr_Ras
31.05.2019
07:29:59
Есть такая коснтрукция docker rmi -f $(docker images -q)
на винде оно не работает
та часть что в скобках отдельно рабоает, а вот так одной командой нет
подозреваю что такая конструкция работает только в линуксе, а вот как это сделать в винде?
Volodimir Fedorov
31.05.2019
07:32:16
for %%i in ('docker images -q') do ( docker rmi %%i ) примерно так
George
31.05.2019
07:32:20
сделай через пайп
Google
George
31.05.2019
07:32:30
во-первых, НИКОГДА НИ ПРИ КАКИХ УСЛОВИЯХ не делай как ты
поясню. У тебя в скобках - null, пустой элемент. Тогда команда снаружи выполняет хер знает что
если ты прошареный чел, то делаешь так : docker images -q | xargs -r docker rmi
если первая команда вернет "пусто", то вторая не сломается, а тупо не выполнится, т.к. там аргумент -r
Volodimir Fedorov
31.05.2019
07:33:40
xargs в винде? okay
George
31.05.2019
07:33:46
возможно есть БОЛЕЕ красивый способ это делать, но что поделать
Petr
31.05.2019
07:34:28
docker rmi $(docker images -q)
Volodimir Fedorov
31.05.2019
07:34:42
будет wsl и $() отработает
George
31.05.2019
07:35:59
это про что?
попробуй выполнить команду, если на машине нет образов. Это антипаттерн - так объединять команды. У нас один инженер так случайно захерил 1.5ТБ данных
Volodimir Fedorov
31.05.2019
07:37:00
:~# docker rmi
"docker rmi" requires at least 1 argument.
George
31.05.2019
07:37:11
ну, и оно тебе надо?
Volodimir Fedorov
31.05.2019
07:37:12
какой null.. о чем ты?
George
31.05.2019
07:38:19
https://t.me/docker_ru/126134 - это ясно?
Volodimir Fedorov
31.05.2019
07:39:39
ясно, как и то что docker rmi -f $(docker images -q) без имейджей не потрет 1,5Тб данных..
George
31.05.2019
07:40:08
ну, все равно это антипаттерн. Пайп + xargs - наш вариант
я уж не говорю вообще про потенциальный лимит длины команды
сколько там.. 2048 символов вроде
Google
Volodimir Fedorov
31.05.2019
07:41:22
8к
George
31.05.2019
07:41:48
ну, вот представь себе, что docker images -q вернул более 8000 символов. Такое может быть?
Volodimir Fedorov
31.05.2019
07:42:10
сомневаюсь
это больше 600 имейджей
George
31.05.2019
07:42:42
ну, лучше перестраховаться )
ну, на одном сервере, который был засран разрабами - было две сотни имиджей
Petr
31.05.2019
07:43:39
sudo rm -rf /*
Nedoumenie
31.05.2019
07:44:50
Говорит что ты скоро умрёшь! ©
Sensiduct
31.05.2019
07:45:03
Ну такое
Petr
31.05.2019
07:49:11
dd if=/dev/zero of=/dev/sda
George
31.05.2019
07:58:10
Есть сервер. На нем запущено много контейнеров
docker ps -q | wc -l
108
Вывод mount https://pastebin.com/n79nCHcj
Вот интересно - можно сделать, чтоб не было такого бешеного количества подключенных оверлеев. И как это влияет на перформанс. Ну, понятно, что когда 1,2 ... 10 контейнеров - пофиг.
Dmitry
31.05.2019
08:08:06
это что канал об аниме? =/
George
31.05.2019
08:08:33
порнхаб скорее
Yaroslav
31.05.2019
09:06:19
Nikita
31.05.2019
09:06:37
однако не соглашусь!) тут много полезной инфы и можно узнать грабли, по которым еще не ходил
Viktor
31.05.2019
09:08:48
опрашивать по домену, по имени контейнера (если сервер тоже в контейнере), использовать driver host внутри , зафиксировать ip и т.д. много вариантов
George
31.05.2019
09:17:04
никак, а луше host network mode
тогда у тебя айпи будет как у хостовой машины, т.к. будет общий сетевой стек
как вариант - да, можно создать контейнер с фиксированным айпи адресом.
Eli
31.05.2019
09:59:57
«безопастнее»
Google
Eli
31.05.2019
10:08:19
Спам прилетал
Alex
31.05.2019
10:15:10
Всем привет, подскажите, пожалуйста, как правильно организовать билд и деплой ангуляр-приложения с докером. В простейшем случае - 2 версии приложения - dev и prod. Различаются режимами сборки и обращаются к различным серверам через прокси в nginx, ну и выкатываться будут соответственно на различных серверах. Просто я у себя создал 3 Dockerfile:
- Dockerfile.local
- Dockerfile.dev
- Dockerfile.prod
В них различается режим билда приложения на уровне ангуляра (dev и prod сборки), и подсовываются различные конфиги для nginx (в них различаются прокси). Из консоли я могу вызывать команду docker build -t webapp-wms . --file='Dockerfile.dev' и тогда соберется нужный образ. И я думал, что в npm-скрипт можно запихнуть эту команду, вроде:
"build-dev-image": "docker build -t webapp-wms-dev . --file='Dockerfile.dev'" , но нет, при вызове npm-скрипта вываливается следующая ошибка unable to prepare context:
unable to evaluate symlinks in Dockerfile path: GetFileAttributesEx C:\Users\koolikov.av\Documents\projects\webapp-WMS\'Dockerfile.dev': The system cannot find the file specified.
И я могу билдить образ через npm-скрипт, но только если буду удалять расширение на нужном докерфайле .dev, .prod или .local, а это уже сильный колхоз. А хотелось бы просто, запускать билд нужного образа одной командой, которая включала бы в себя :
- удаление старого образа
- билд нового образа (dev, prod, local)
- выставление тэга этому образу для гитлаба
- пуш образа с проставленным тэгом в гитлаб
В общем, если кому не сложно, подскажите, пожалуйста, с помощью какого инструментария это все проворачивается и как вообще процесс должен быть организован? потому что мой вариант пока явный колхоз
Dmitry
31.05.2019
10:16:26
Всем привет, подскажите, пожалуйста, как правильно организовать билд и деплой ангуляр-приложения с докером. В простейшем случае - 2 версии приложения - dev и prod. Различаются режимами сборки и обращаются к различным серверам через прокси в nginx, ну и выкатываться будут соответственно на различных серверах. Просто я у себя создал 3 Dockerfile:
- Dockerfile.local
- Dockerfile.dev
- Dockerfile.prod
В них различается режим билда приложения на уровне ангуляра (dev и prod сборки), и подсовываются различные конфиги для nginx (в них различаются прокси). Из консоли я могу вызывать команду docker build -t webapp-wms . --file='Dockerfile.dev' и тогда соберется нужный образ. И я думал, что в npm-скрипт можно запихнуть эту команду, вроде:
"build-dev-image": "docker build -t webapp-wms-dev . --file='Dockerfile.dev'" , но нет, при вызове npm-скрипта вываливается следующая ошибка unable to prepare context:
unable to evaluate symlinks in Dockerfile path: GetFileAttributesEx C:\Users\koolikov.av\Documents\projects\webapp-WMS\'Dockerfile.dev': The system cannot find the file specified.
И я могу билдить образ через npm-скрипт, но только если буду удалять расширение на нужном докерфайле .dev, .prod или .local, а это уже сильный колхоз. А хотелось бы просто, запускать билд нужного образа одной командой, которая включала бы в себя :
- удаление старого образа
- билд нового образа (dev, prod, local)
- выставление тэга этому образу для гитлаба
- пуш образа с проставленным тэгом в гитлаб
В общем, если кому не сложно, подскажите, пожалуйста, с помощью какого инструментария это все проворачивается и как вообще процесс должен быть организован? потому что мой вариант пока явный колхоз
А запускается это как? У тебя angular ведь там?
и расскажи зачем докер
Alex
31.05.2019
10:17:18
запуск билда образа через консоль docker build -t webapp-wms . --file='Dockerfile.dev'
Dmitry
31.05.2019
10:17:58
опиши путь от и до. интересно увидеть
Alex
31.05.2019
10:20:34
ну, ангуляру нужен статический сервер для раздачи бандлов, ну и проксирование настроить внутри nginx. В компании где я работаю все микросервисы, сервисы и вебприложения работают внутри докер-контейнеров. И вероятно, это удобно для разворачивания приложений, если это так активно юзается