Изнутри докера докопаться вовне.

ksnk

прохожий
Возможно офтопик, но имеется
- сервер в обычном наборе, со всеми стандартными фичами. Рутовый доступ.
- в нем крутится докер с минимальным обвесом. В нем апач, php и все-все-все. Части диска расшарены между докером и сервером. Многие команды из системы докера, включая ssh выкинуты физически. Впрочем, exec запускать можно. Этот докер виден снаружи, по http.
Архитектуру проекта менять топором я пока не собрался, по этому так есть.

На сервере имеется некая утилита (unoconv), которая видна из консоли, прекрасно выполняется в консоли, однако не видна с докера.
В докеры не очень умею, но могу поучится, их конфиги видны.

В общем - вопрос. Имеется ли, хотя бы теоретическая возможность, выполнить эту команду php скрипту? Из консолли в докер заслать команду можно, а вот изнутри наружу такеое возможно?

Какие пути были опробованы:
Первая попытка была пробраться через ssh в серверную консоль. Оказалось, что ssh нету в докере.
Вторая попытка была добраться до сервера по http, но сам сервер не запускает апач, только в докере.

В общем обида в том, что это один и тот же , физически, компьютер, а запустить утилитку не нахожу никакой возможности.
 

WMix

герр M:)ller
Партнер клуба
кроме как по порту никак.
ну те что можно сделать, на хосте поставить netcat и слушать порт к примеру 100500, при получении запроса передать все на unoconv
далее из докер тем же netcat постучаться на порт 100500 и передать все аргументы

netcat это просто пример. тут широкое поле для фантазий
 
  • Like
Реакции: ksnk

ksnk

прохожий
Мяу! На этом можно слепить удаленный TCP шелл на netcat`ах! Круто :) Хотя применимость сомнительна, на первый взгляд, но выглядит вполне работоспособно. Юникс не устает удивлять. Надо будет на выходных поразвлекаться, если не будет другого решения, или в свободное время, если будет...
 

Yoskaldyr

"Спамер"
Партнер клуба
ну если система хоста и система докера одна и та же или если unoconv скомпилирован статически тупо смонтировать эту утилиту (и зависимости если динамика) куда либо в докер
 

ksnk

прохожий
ну если система хоста и система докера одна и та же или если unoconv скомпилирован статически тупо смонтировать эту утилиту (и зависимости если динамика) куда либо в докер
Мысль, конечно, интересная, но докер что-то вроде стандартного, чуть ли не скачан с апачевского сервера (по слухам... давно это было). Система там одна и та же, однако unoconv требует питона с библиотекой офиса, которого в докере нет. Так что боюсь одной монтировкой не обойтись. Хотя, может и зря боюсь...
 

WMix

герр M:)ller
Партнер клуба
по хорошему просто новый контейнер сделать и там поднять сервис для unoconv
 

ksnk

прохожий
по хорошему просто новый контейнер сделать и там поднять сервис для unoconv
По хорошему - может быть так и лучше было бы, однако сейчас уже вот так.
Про inetd все забыли?
Да, это оно. Пока сочиняется - передача имени файла из докера по TCP, и прием имени файла. На стороне сервера будет баш скрипт.
 
Сверху