Anonymous
Там сверху написано что набрать в терминале чтобы получить список драйверов
Anonymous
man 5 ...
Anonymous
я уж то прочитал
Anonymous
И в чем проблема? Собственная система не знакома, чтобы выбрать то что нужно?
Anonymous
❯ skopeo inspect docker://docker.io/fedora | jq -r '.RepoTags[]' 20 21 22 23 24 25 26-modular 26 27 28 29 30 31 32 33 34 35 branched heisenbug latest modular rawhide
DaiTenshi
Всем привет! После бездумного пруна - подкосило конфиги сетевые по-ходу теперь постоянно после старта приходится изгаляться (даже не понимаю, что временно помогает перебираю разные комбинации [ sudo sysctl -w net.ipv4.ip_forward=1 sudo iptables -I DOCKER-USER -j ACCEPT ] и релоада демона всё сбрасывает, из контейнеров внешка не доступна (нужет для сборки посредством гитлаб раннера) - на хостовой машине с подключением нет проблем Ubuntu 20.04 LTS Подскажите плиз, в какую сторону копать? после ребута iptaples: https://pastebin.com/0rJiZ9eW
DaiTenshi
А в iptables правила создаются?
да, но после ребута исчезают
Vitaly
Посмотрите, в конфиге докера не стоит ли iptables false
Anonymous
да, но после ребута исчезают
давали же ссылку в другом чате на сохранение правил
DaiTenshi
давали же ссылку в другом чате на сохранение правил
не мне скорее всего, не вижу пока ссылок
DaiTenshi
давали же ссылку в другом чате на сохранение правил
изрыл 2 чата, может подскажете приблизительно ключевое слово для поиска по чату?
DaiTenshi
спасибо
Дмитрий
Коллеги, добрый день. Подскажите пожалуйста, как можно посмотреть какой контейнер от какого пользователя обращается к файлу на хосте? У меня есть хост с mariadb, php и nginx в контейнерах. Там же лежит распакованый teampass не в контейнере. Когда пытаюсь загрузить базу в teampass, получаю не очень информативную ошибку. Обнаружил что во время залива в директории teampass создается файл такого же размера, но с необычными правами. Подозреваю что ошибка появляется из-за того что с ним пытается взаимодействовать другой контейнер у которого нет прав.
Дмитрий
не знаю что такое teampass но всегда когда видел страаные права это был вызов php типа сhmod($filename, 744) (или аналогов) - видите подвох?
Тимпас это программа для хранения паролей с радграничением доступа. Подвох не увидел...это права на чтение для всех?
Anonymous
744 = 0o1350
Anonymous
1350 - странные права, да?
Дмитрий
Спасибо. Я как за компом буду, напишу подробнее как это выглядит
Дмитрий
Белый - это тот, который создается при попытке загрузить файл. Каюсь, задал на всю папку 777, но это только на момент настройки.
Дмитрий
В режиме F12 в хроме при этом такое сообщение: [{"result":"db_restore" , "message":"Defuse\Crypto\Exception\IOException: Could not read from the file in /var/www/teampass/includes/libraries/Encryption/Encryption/File.php:685 Stack trace: #0 /var/www/teampass/includes/libraries/Encryption/Encryption/File.php(452): Defuse\Crypto\File::readBytes(Resource id #74, 4) #1 /var/www/teampass/includes/libraries/Encryption/Encryption/File.php(280): Defuse\Crypto\File::decryptResourceInternal(Resource id #74, Resource id #75, Object(Defuse\Crypto\KeyOrPassword)) #2 /var/www/teampass/includes/libraries/Encryption/Encryption/File.php(85): Defuse\Crypto\File::decryptFileInternal('/var/www/teampa...', '/var/www/teampa...', Object(Defuse\Crypto\KeyOrPassword)) #3 /var/www/teampass/sources/main.functions.php(2173): Defuse\Crypto\File::decryptFileWithPassword('/var/www/teampa...', '/var/www/teampa...', '123') #4 /var/www/teampass/sources/admin.queries.php(421): prepareFileWithDefuse('decrypt', '/var/www/teampa...', '/var/www/teampa...', '123') #5 {main}"}]
Дмитрий
А в teampass сообщение Requested JSON parse failed., хотя база должна добавляться с расширением .sql
Anonymous
да, но после ребута исчезают
Ну так и должно быть. Чтобы они были постоянным, они должны быть добавлены в конфиги в соответствующие таблицы. Тогда они подхватятся на старте.
Anonymous
Ну так и должно быть. Чтобы они были постоянным, они должны быть добавлены в конфиги в соответствующие таблицы. Тогда они подхватятся на старте.
Обычно сервисы systemd которым важны эти таблицы умеют сами редактировать эти файлы, поэтому возможно стоит выключить/включить сломанные юниты
DaiTenshi
Ну так и должно быть. Чтобы они были постоянным, они должны быть добавлены в конфиги в соответствующие таблицы. Тогда они подхватятся на старте.
Ага, под конец рабочего дня вообще оказалось, что сам докер-енжин и настройки хоста не при чём. Майки натупили с образами для .net 5 - сначала с алиасами намудрили, потом откатили/пофиксили, а я про это и забыл. В итоге правка тега в докерфайле всё поправила. А я на dind грешил... :/
Anonymous
ptrace, если сможете завести его в таком окружении.
Это безусловно возможно но требует опыта.
Anonymous
Есть попроще способ: в директории proc (под рутом только) можно найти информацию о каждом из процессов, в том числе о каждом открытом файловом дескрипторе.
Anonymous
И напоследок: есть debugfs псевдо-файловая система. Она позволяет как и ptrace ловить системные вызовы, но значительно проще в работе
Anonymous
Ага, под конец рабочего дня вообще оказалось, что сам докер-енжин и настройки хоста не при чём. Майки натупили с образами для .net 5 - сначала с алиасами намудрили, потом откатили/пофиксили, а я про это и забыл. В итоге правка тега в докерфайле всё поправила. А я на dind грешил... :/
Поэтому важно добросовестно вести систему контроля версий, чтобы была возможность протестировать прошлую версию, когда не ясно что вызвало баг: обновление программы или изменения в рантайме.
DaiTenshi
Стопроцентно согласен, но в команде из 3 человек-оркестров (бэк, фронт, ведущий) - тяжеловасто (ни qa, ни devops,..).. ладно, это уже оффтоп. Спасибо
Anonymous
А в teampass сообщение Requested JSON parse failed., хотя база должна добавляться с расширением .sql
У меня есть ещё модуль для LD_PRELOAD который делает логирование всех затронутых программой файлов (в файл или stdout). Если нужно, найду исходники.
Anonymous
Она подменяет все низкоуровневые вызовы read, write, readdir и прочее с целью вытащить эту инфу. Я ее сам допиливал напильником из версии которая пропускала добрую половину.
Anonymous
Стопроцентно согласен, но в команде из 3 человек-оркестров (бэк, фронт, ведущий) - тяжеловасто (ни qa, ни devops,..).. ладно, это уже оффтоп. Спасибо
Да ну, достаточно просто запретить передавать друг другу артефакты минуя гит. То есть передача файлика в телеграмме скажем должна быть заменена на отправку ссылки на коммит в приватной вашей репке.
Anonymous
Научиться просто делать got add * git commit -m update git push
Anonymous
Не рокетсаенс, но уже будет какая никакая история
Дмитрий
Спасибо за советы, буду гуглить
Дмитрий
У меня есть ещё модуль для LD_PRELOAD который делает логирование всех затронутых программой файлов (в файл или stdout). Если нужно, найду исходники.
Да, буду признателен, если поделитесь. Особенно если ещё подскажете потом как им пользоваться )
Дмитрий
А в teampass сообщение Requested JSON parse failed., хотя база должна добавляться с расширением .sql
В итоге забил на разбор почему из веб интерфейса импорт не работает. Решил проблему просто - импортировал .sql файл в MariaDB вручную.
Anonymous
Есть какая-нибудь лучшая альтернатива traefik?
Anonymous
не. traefik эротично с докером же дружит
Anonymous
никакие конфиги писать не нужно
Dan
В чем ты хочешь увидеть лучшесть альтернативы?
Div
docker cp попробуйте
Div
с указанием юзера
Anonymous
sudo -u www-data scp …
Anonymous
причем к докеру это отношение никакого не иметт
Anonymous
для системных юзеров они более-менее унифицированы
Dan
Коллеги, несу вам радостную весть! «Котики» перезагрузились, и снова кодят! https://t.me/ccoder/63 Всех защитников котечества — с праздником! 😺
Slach
Народ, имею docker-compose.yaml в котором volume с относительным путем а как бы через docker volume inspect или еще как то получить какой на самом деле путь использовался при монтировании?
Anonymous
❯ docker volume inspect docker-compose_pgdata [ { "CreatedAt": "2021-02-23T08:43:21+03:00", "Driver": "local", "Labels": { "com.docker.compose.project": "docker-compose", "com.docker.compose.version": "1.28.3", "com.docker.compose.volume": "pgdata" }, "Mountpoint": "/var/lib/docker/volumes/docker-compose_pgdata/_data", "Name": "docker-compose_pgdata", "Options": null, "Scope": "local" } ]
Anonymous
%имя_каталога%_%имя_хранилища%
Anonymous
а так просто красиво
Slach
❯ docker volume inspect docker-compose_pgdata [ { "CreatedAt": "2021-02-23T08:43:21+03:00", "Driver": "local", "Labels": { "com.docker.compose.project": "docker-compose", "com.docker.compose.version": "1.28.3", "com.docker.compose.volume": "pgdata" }, "Mountpoint": "/var/lib/docker/volumes/docker-compose_pgdata/_data", "Name": "docker-compose_pgdata", "Options": null, "Scope": "local" } ]
хм... и где тут вывод пути для pgdata? у меня почему то не так выглядит for id in $(docker volume ls -q); do docker volume inspect $id; done [ { "CreatedAt": "2021-02-23T11:37:57Z", "Driver": "local", "Labels": null, "Mountpoint": "/var/lib/docker/volumes/0dbcfb85c3e67afb6c003696e7aec5a624584d9c9ed03ead38f2665fee1328be/_data", "Name": "0dbcfb85c3e67afb6c003696e7aec5a624584d9c9ed03ead38f2665fee1328be", "Options": null, "Scope": "local" } ]
Anonymous
❯ docker volume inspect docker-compose_pgdata | jq -r '.[] | (.Mountpoint)' /var/lib/docker/volumes/docker-compose_pgdata/_data ❯ sudo ls -lah /var/lib/docker/volumes/docker-compose_pgdata/_data total 56K drwx------ 1 70 70 512 Feb 23 08:43 . drwx-----x 1 root root 10 Feb 20 18:11 .. drwx------ 1 70 70 42 Feb 20 18:25 base drwx------ 1 70 70 606 Feb 23 09:06 global drwx------ 1 70 70 0 Feb 20 18:25 pg_commit_ts drwx------ 1 70 70 0 Feb 20 18:25 pg_dynshmem -rw------- 1 70 70 4.7K Feb 20 18:25 pg_hba.conf -rw------- 1 70 70 1.6K Feb 20 18:25 pg_ident.conf
Slach
❯ docker volume inspect docker-compose_pgdata | jq -r '.[] | (.Mountpoint)' /var/lib/docker/volumes/docker-compose_pgdata/_data ❯ sudo ls -lah /var/lib/docker/volumes/docker-compose_pgdata/_data total 56K drwx------ 1 70 70 512 Feb 23 08:43 . drwx-----x 1 root root 10 Feb 20 18:11 .. drwx------ 1 70 70 42 Feb 20 18:25 base drwx------ 1 70 70 606 Feb 23 09:06 global drwx------ 1 70 70 0 Feb 20 18:25 pg_commit_ts drwx------ 1 70 70 0 Feb 20 18:25 pg_dynshmem -rw------- 1 70 70 4.7K Feb 20 18:25 pg_hba.conf -rw------- 1 70 70 1.6K Feb 20 18:25 pg_ident.conf
вы мне показывете на volume который без относительного пути в docker-compose задан это просто volume без данных изначально которые из контекста не передаются а я про volume которые заданы с исходными данным вот у меня volume clickhouse: image: XXXX volumes: - ./credentials.json:/etc/credentials.json вот как мне понять теперь в каком docker volume мой credentials.json лежит? и как этот volume подмонтирован в контейнер?
Vasya🐾
Нужна помощь новичку! Я понимаю что контейнеры это не лучшее место для хранения данных. И что данные живы пока жив и работает сам контейнер. Можно ли как-то настроить контейнер, чтобы его можно было перезапускать или останавливать без потери данных?
Vasya🐾
volumes
выгрузка данных на хард? т.е в процессе работы он скидывает в волюм данные
Timur
выгрузка данных на хард? т.е в процессе работы он скидывает в волюм данные
Т.е ты ему подсовываешь место куда писать на системе
Timur
Обычно выглядит как -v /data:/data
Timur
Вместо /data ваши пути на хосте и в контейнере
Sergey
Подскажите как для docker-compose реализовать подключение gpu так как через docker через ключик --gpus. Нашёл через runtime но уже устарел.
Vasya🐾
В дополнение, те сервисы что юзают бд можно к внешним бд прикручивать.
Такой вот глупый вопрос как завести контейнер со статусом "exeting" ?
Div
Эм. Логи покурить и пофиксить проблему?
Vasya🐾
Эм. Логи покурить и пофиксить проблему?
да тут не все так страшно нет проблемы просто выхожу их контейнера а потом зайти не могу(
Anonymous
да тут не все так страшно нет проблемы просто выхожу их контейнера а потом зайти не могу(
Обычно в контейнеры заходить не надо в принципе, потому проблема не очень понятна
Vasya🐾
Обычно в контейнеры заходить не надо в принципе, потому проблема не очень понятна
я еще разбираюсь с процессом остановки/перезапуска контейнеров поэтому не могу понять, если выключить контейнер то к нему доступа больше нет, надо удалять и создавать новый из образа
Anonymous
А вообще одноразовые контейнеры часто запускают docker run —rm чтобы сами удалялись
Vasya🐾
Можно попробовать docker start
Спасибо) наконец-то работает
A.D.🈴
Спасибо) наконец-то работает
А что за оформление такое?
Vasya🐾
А что за оформление такое?
zsh manjaro-config https://github.com/Chrysostomus/manjaro-zsh-config
Anonymous
Powerlevel10k