Les utilisateurs d'environnements de conteneurs connaissent probablement déjà ces deux outils et plateformes couramment utilisés pour créer et gérer les conteneurs : Docker et Kubernetes.
Docker est un environnement d'exécution couramment utilisé pour créer et concevoir des logiciels à l'intérieur de conteneurs. Les images Docker (snapshots de copie sur écriture) permettent de déployer des applications ou des logiciels conteneurisés dans plusieurs environnements, du développement jusqu'aux tests et à la production. Docker repose sur des normes ouvertes et est compatible avec la plupart des environnements d'exploitation, notamment Linux, Microsoft Windows et d'autres infrastructures sur site ou dans le cloud.
Toutefois, les applications conteneurisées peuvent s'avérer complexes. En production, un grand nombre d'entre elles peut nécessiter des centaines, voire des milliers de conteneurs distincts. Il est alors utile d'intégrer d'autres outils aux environnements d'exécution de conteneurs Docker afin d'orchestrer ou de gérer les conteneurs en cours d'exécution.
L'un des outils les plus populaires est Kubernetes, un orchestrateur de conteneurs qui reconnaît plusieurs environnements d'exécution, notamment Docker.
Kubernetes orchestre le fonctionnement simultané de plusieurs conteneurs. Il gère, par exemple, l'utilisation des ressources de l'infrastructure sous-jacente pour les applications conteneurisées, telles que les ressources de calcul, de réseau et de stockage requises. Les outils d'orchestration comme Kubernetes facilitent l'automatisation et l'évolutivité des workloads basés sur des conteneurs pour les environnements de production.