Bonjour à tous,

Je connaissais l'existence de Docker mais je n'avais pas encore franchi le pas de l'utiliser. Mais avant de me lancer, j'aurais souhaité savoir si Docker avec ses conteneurs pouvait répondre à ma question.

Principe : J'ai une application écrite en langage C et souhaiterais savoir s'il est possible de la télécharger à partir de mon site Internet sur le terminal distant de l'utilisateur et de lancer dans la foulée son exécution dans un conteneur Docker évitant ainsi une application propriétaire à mettre à jour régulièrement. Les CGI (Common Gateway Interface) ne répondent pas à ma question car ils s'exécutent sur le serveur et, de plus, ne sont pas du goût des fournisseurs d'accès pour des raisons compréhensibles de sécurité.

Si j'ai bien compris, la notion de conteneur m'est apparu comme un espace de confinement assurant toutes les sécurités protégeant le système distant de l'utilisateur.

J'avais tenté de réaliser ce type de traitement avec les applets Java que j'ai abandonnées sans regret à cause de l'environnement. Une appliquette Java, une fois signée (un délire !...), a accès à toutes les ressources du terminal distant ce que je ne voulais pas.

Après ce petit préambule, voici mes questions :

  1. PHP fournit les outils pour télécharger un fichier et lancer l'exécution d'un exécutable, mais est-il possible de lancer cet exécutable dans un conteneur Docker sur le terminal distant ?...
    .
  2. L'application en C est formée de plusieurs composants :
    1. Le maillon principal fédérant toutes les fonctions peut-il être téléchargé dans un conteneur principal ?...
    2. Chacune des fonctions peut-elle être téléchargée dans un conteneur secondaire dédié exécutable à partir du maillon principal dans son conteneur voire à partir d'un conteneur secondaire ?...
      .
  3. le champ d'action d'une application s'exécutant dans un conteneur est-il bien limité à l'espace de confinement associé au conteneur sans possibilité d'accès aux ressources hors de son espace ?...

Je sais que la méthode est limitée, dans mon cas, à un système Windows distant et qu'il faudrait alors une application construite dans celui du terminal distant. Mais, pour le moment, je m'en tiens à Windows.

En vous remerciant par avance de votre éclairage.
Cordialement.
Jean-Pierre Rousset