А внутри докера устанавливаются пакеты из репозиториев, а потом сверху всё это шлифуется всякими git clone, pip/virtualenv, gem/bundler, cpanm. Получившуюся помойку потом можно запустить только на каком-нибудь Linux'е с docker'ом, но не в *BSD, Solaris или cigwin. А для того, чтобы связать между собой две программы, нужно городить какие-то костыли, ведь нельзя установить программы, находящиеся в разных докер-контейнерах, в один контейнер.docker - это нишевое решение, которое годится разве что для того, чтобы делать воспроизводимые сборки программ для Linux. Ещё сейчас моден подход "микросервисы", который предполагает, что каждый микросервис обязан вываливать наружу какой-нибудь TCP-сервис. С unix-сокетами или stdin/stdout уже проблемы, а если предполагается использование модульности через динамические библиотеки, то пиши "пропало". Точнее - пиши обёртку, которая обернёт динамическую библиотеку или потоки stdin/stdout в TCP.
|