Si j'exécute un conteneur dans AWS ECS à l'aide d'EC2, je peux accéder au conteneur en cours d'exécution et exécuter n'importe quelle commande.
c'est à dire. docker exec -it <containerid> <command>
Comment puis-je exécuter des commandes dans le conteneur en cours d'exécution ou accéder au conteneur dans AWS ECS à l'aide de Fargate?
Avec Fargate, vous n'avez pas accès à l'infrastructure sous-jacente, donc docker exec
ne semble pas possible. La documentation ne le mentionne pas explicitement mais elle est mentionnée dans cette Présentation de Deep Dive into AWS Fargate par Amazon où cela est mentionné sur la diapositive 19:
Quelques mises en garde: impossible d'exécuter dans le conteneur ou d'accéder à l'hôte sous-jacent (c'est aussi une bonne chose)
Il y a aussi une discussion à ce sujet --- issue open dans le projet github ECS CLI.
Vous pouvez essayer d'exécuter un serveur SSH à l'intérieur d'un conteneur pour y accéder, mais je ne l'ai pas essayé ou je n'ai rencontré personne faisant cela. Cela ne semble pas non plus être une bonne approche, vous êtes donc limité.
AWS Fargate est un service géré et il est logique de ne pas autoriser l'accès aux conteneurs. Si vous devez dépanner le conteneur, vous pouvez toujours augmenter le niveau de journalisation de votre application exécutée dans des conteneurs. Les meilleures pratiques de travail avec les conteneurs indiquent
"Les conteneurs Docker sont en fait immuables. Cela signifie qu'un conteneur en cours d'exécution ne change jamais, car au cas où vous auriez besoin de le mettre à jour, la meilleure pratique consiste à créer un nouveau conteneur avec la version mise à jour de votre application et supprimer l'ancien."
J'espère que ça aide.