Para o que você está tentando fazer, parece que você deseja contêineres docker para cada "unidade funcional". Não resolve "Eu instalei um aplicativo hoje da CLI." Ele resolve "Precisamos de cada caixa implementável em qualquer hardware disponível".
Você pode manter aplicativos instalados manualmente em uma pasta compartilhada, mas isso significa que eles precisam ser instalações monolíticas ou um contêiner para cada aplicativo. Você também pode usar AMIs para isso se usar o AWS.
Isso significa que o hardware não importa, mas há um custo inicial para configurar tudo da maneira certa. Quanto mais complexo for o projeto, mais complicado será a obtenção de um único contêiner de trabalho e as interdependências mais distorcidas se tornarão.
Como exemplo, este projeto de brinquedos é uma ótima maneira de fazer as coisas. Então, se o seu cara nginx gosta de alpino, mas seu cara de sanic gosta de debian e seu cara de postgres gosta de ubuntu - os containers derivam apenas de modelos diferentes e podem ser movidos de máquina para máquina a qualquer momento.
Novamente, isso significa começar com "imagens implantáveis" desde o início. Fica cada vez mais difícil à medida que o tempo passa para descobrir o que você precisa para uma imagem ser implantável.