Denis
Denis
Есть ещё http://vmware.github.io/harbor/
Gleb
На ceph
Denis
Омг
Михаил
На ceph
я слышал цеф и пришёл вам за него рассказать)
Denis
Внезапно)
Denis
https://microbadger.com/ вот ещё интересный инструмент
What's inside your Docker containers?
Have you ever found an image on Docker Hub and wondered what code it was built from? Or tried to locate the Docker image for a source code repo?
MicroBadger makes it easy to see the contents of a container image, including the layers, the base image it depends on, and its labels & other metadata.
Denis
Например можно так https://microbadger.com/images/puppet/puppetserver
Anonymous
Михаил
Ждем-с
а тебе я вроде рассказывал
Anonymous
Всегда люблю послушать офигенные истории!
Михаил
Igor
Andrey
здаров посоны!
Андрей
как заставить docker использовать http, вместо https?
Андрей
прописал в /etc/docker/daemon.json нужный хост
Андрей
грубо говоря { "insecure-registries":["1.2.3.4:5000"] }
Андрей
docker info выдаёт:
Insecure Registries:
1.2.3.4:5000
127.0.0.0/8
Андрей
А да. Сорян)) он уже тут. ))
Andrey
> docker -v
Docker version 1.12.6, build 78d1802
Andrey
level=error msg="Attempting next endpoint for pull after error: Get https://1.2.3.4:5000/v2/: http: server gave HTTP response to HTTPS client"
Andrey
в логах
Bogdan (SirEdvin)
Но ведь эти же самые риски справедливы и для базы вне докера? Точно также можно основной системы поломать что-то, точно также можно словить проблемы с фс. Просто применяйте обще принятые для этого стратегии, отдельный сервер для базы, бэкапы на другой сервер, наличие реплики
Но проблема в том, что это дополнительные риски, которые, честно говоря, не то что бы окупаются. Объеденять бд в кластер, со свободным плаваньем контейнеров весьма опасно, а просто запускать бд в докере или просто установленную ... ну, не такяа большая разница
Igor
разница в том что в контейнере удобнее, но конечно если база всего один инст глобальный на два десятка php сайтиков, то вероятно смысла особого и нет держать в контейнере
Igor
я примерно 6+ лет занимаюсь разработкой веб проектов разной сложности, и вот на моей памяти базы умирали потому что админ чего не то обновил насервере, изза того что программист написал корявую миграцию или полез на сервер с какойнить gui тулзой, изза того что харду пришла жопа, изза того что проект был написан индусами, которые оставили бэкдор, и потом пришли и удалили базу к херам. Последнии два года юзаю базы в докере, не спорю, у меня не было нагрузок, проектики стартапчки разношерстные, но не было такого чтобы база упала изза докера, или данные базы потерлись потому что бэкэнд фс докера погнал. Поэтому риск есть, вы правы, но вероятность его по моему опыту не больше чем выше перечисленные причины
Igor
возможно смерть базы от рук докера, еще у меня в переди 😃
Anonymous
почему базы не хранить на хост машине?
я так поступаю
Vyacheslav
мне интересно, при перезагрузке сервера или перезапуске контейнера, какой командой внутри докера бд складывается ?
Vyacheslav
в обычной системе есть уровни запуска и при выключении БД гасится правильно
Vyacheslav
думаю риск в том, что в докере, это не всегда так
Igor
точно такой же, докер шлёт процесу сигнал, и та корректно останавливается
Igor
https://docs.docker.com/engine/reference/commandline/stop/
The main process inside the container will receive SIGTERM, and after a grace period, SIGKILL.
Igor
надо только учитывать, что если вы запускаете какой то демон через свой bash скрипт, то SIGNTERM получит баш скрипт, а демону он не передаст его. Я когда сервисы на golang деплоил, столкнулся с этим, ни как не мог понять почему уменя сервис корректно не завершался
Vadim
точно такой же, докер шлёт процесу сигнал, и та корректно останавливается
вот это кстати не всегда так получается. тут есть нюанс. докер шлет контейнеру SIGTERM, база начинает останавливаться. Для больших БД это операция может занять довольно продолжительное время, а у докера по умолчанию таймаут в 10 секунд и если база не успела всё доделать, что положено при её нормальном завершении - докер просто прибьёт её через SIGKILL через 10 секунд. И вот на этом месте можно очень легко получить побитые данные, хотя в большинстве случаев современные бд могут их восстановить после запуска - вероятность остается.
Vyacheslav
в общем надо быть втройне внимательней, при использовании БД в докере, т.к. много подводных камней, поэтому и не рекомендуют БД в него
Igor
не спорю, но с базами всегда надо быть в тройне внимательнее ))
Vadim
но мы используем разные бд в докере и всё хорошо: perocona, elasticsaearch. mongodb. проблем небыло, если бысть осторожным всё ок.
Vyacheslav
но ведь на практике, ты никогда не узнаешь, когда у тебя база начнёт складываться больше 10 секунд...
Vyacheslav
или узнаешь, но уже в результате расследования фейла
Vadim
для базы надо увеличивать таймаут завершения
Igor
https://docs.docker.com/compose/compose-file/#/stopgraceperiod через композ можно задать
Viktor
Nikolay
Господа, а кто-нибудь в курсе как в нативном докере xdebug настроить? У меня наотрез отказывается: выводить в докер порт хоста (9000) так чтобы контейнер думал, что хост локальный и порт тоже локальный. Как?
Igor
Igor
xdebug.remote_connect_back
Nikolay
Там проблема, что IP запрашивающего и Хоста почему то не совпадают. Кто сталкивался? Как лечить?
Igor
Так с чего они совпадать то будут, ты же в докер сеть через бридж ходишь
Igor
я тебе точно говорю, пропиши remote_connect_back, и всё будет ок, я же так дебажил, без проблем всё пашет
Igor
аналог только прописывать жестко айпи хост машины в конфиг, но это гемор
Igor
zend_extension=xdebug.so
xdebug.remote_autostart=0
xdebug.remote_connect_back=1
xdebug.remote_port=9000
xdebug.remote_enable=1
Igor
а хотя да, я тебя обманываю, ты прав, не пройдет бэк конект изза различающегося айпи
Igor
я же всё равно прописывал remote_host
Igor
ставишь себе статичный айпи, и в конфиг его
Nikolay
А как статичный IP Хоста внутри контейнера выставить?
Максим
Ребят, подскажите такую штуку: есть два приложения, на php и python, в разных контейнерах. Нужно запустить их на одном сервере, чтобы к ним обоим можно было обращаться по http, в зависимости от dns запроса. Как это реализовать?
Lupsik Pupsik
Lupsik Pupsik
proxy_pass
Alex
Айпи не забудь пробросить
Alex
А то окажеися что у всех пользователей айпи 127.0.0.1
Тенпеннай
Гаспада.
А какие есть решения для того, чтобы контейнер мог использовать ssh-ключи с виндового хоста?
Anonymous
-v не получится?
Тенпеннай
нет, разрешения на файл не те, а "те" разрешения поставить невозможно
Тенпеннай
если быть точным - расшарить ключ получится, но не получится его использовать
Igor
сделать свой образ, на базе нужного образа, и при билде что нужно скопировать
Тенпеннай
ммммм
Тенпеннай
и все?
Тенпеннай
т.е. других альтенатив нет?
Igor
а что вообще делаешь?
Igor
может ты вообще не тем путем идёшь изначально
Тенпеннай
я хочу, чтобы некие скрипты, которые бегают в контейнере, могли использовать мои ключи для авторизации
Igor
http://serverfault.com/questions/81746/bypass-ssh-key-file-permission-check ну как вариант обойти проверку прав ключей
Тенпеннай
'AFAIK, there is no way to bypass the keyfile permission check with ssh or ssh-add (and you can't trick it with named pipe or such)'
Igor
кстати да, там чуваки ниже пишут, ты же можешь поднять локально ssh-agent и пробросить его сокет внутрь контейнера, и тогда скрипты будут юзать аус сокет
Igor
не, там чел описывает сложный способ, но он рили сложный, и к докеру не применим скорее всего, ссылку кинул не глянув
Igor
а вот с проброской аус сокета вполне реальный способ
Igor
https://gist.github.com/d11wtq/8699521 вот чуваки тут делают так, но у них походу не винда
Igor
но по мне так проще всё же забилдить свой образ на базе нужного, и добавить в него ключей, всё остальное геморой какой то
Тенпеннай
ну, как один чувак написал
Many developers implement either insecure or inconsistent cut-offs, for example, embedding secrets into the image or installing gems at run time instead of build time.
These approaches can be sufficient for quickly getting applications up and running, but they create a technical debt by introducing architecture that isn’t consistent with common security requirements and continuous delivery principle