Docker y OpenShift sont tous deux des cadres permettant de mettre en œuvre un service PaaS.
Comment se comparent-ils en termes d'architecture et de caractéristiques ?
La principale différence réside dans le fait que Docker, en tant que projet, se concentre uniquement sur le conteneur d'exécution, tandis qu'OpenShift (en tant que système) comprend à la fois le conteneur d'exécution et l'API REST, la coordination et les interfaces Web permettant de déployer et de gérer des conteneurs individuels.
Si l'on compare uniquement les conteneurs d'exécution, OpenShift et Docker utilisent tous deux des fonctions d'isolation du noyau pour séparer les processus des locataires. Pour Docker, cela passe principalement par LXC et pour OpenShift, c'est en grande partie grâce à SELinux et à Multiple Category Security (MCS). Les deux utilisent des cgroups pour limiter le CPU, la mémoire et l'IO des locataires. En amont, OpenShift envisage LXC pour réduire les efforts à long terme.
Docker utilise AUFS pour le partage avancé de disques et de fichiers par copie sur écriture, OpenShift n'est ni nécessaire ni incompatible avec un tel système.
À l'intérieur du conteneur, OpenShift modélise des unités de fonctionnalité (serveurs web, dbs) via des "cartouches", qui sont un ensemble de crochets shell script qui sont appelés lorsque le système est invoqué. L'API est décrite aquí . Une cartouche est à peu près similaire à une image docker.
Openshift décrit également l'API par laquelle un courtier (coordinateur) communique avec les nœuds (serveurs qui hébergent plusieurs conteneurs de locataires) pour invoquer les points de terminaison dans ce conteneur.
ÉDIFIÉ POUR AJOUTER : Depuis juin 2015, OpenShift Origin 1.0 fonctionne au-dessus de Docker et Kubernetes, et vous pouvez construire et développer des applications multi-conteneurs qui fonctionnent sur le runtime Docker. OpenShift ajoute la construction, le flux de travail et la promotion des images, ainsi que des opérations de cluster de conteneurs sécurisées au-dessus de Kube et Docker.
@Clayton, merci pour ce post utile. Maintenant avec GearD, cela signifie-t-il que les cartouches sont obsolètes, si l'on utilise GearD ? Je pense que oui d'après votre post mais je souhaitais clarifier. Merci !
J'ai pensé que je devais mettre à jour les réponses à cette question avec les informations disponibles vers la fin de 2018.
La situation actuelle est un peu plus compliquée que lorsque la question a été posée à l'origine. À l'heure actuelle, Docker Inc. est le principal développeur de docker et de Moby, qui est actuellement le projet en amont du runtime docker et de l'édition commerciale de docker pour les entreprises, appelée de façon fantaisiste Docker Enterprise Edition.
Une analyse contemporaine de cette question aboutirait à une comparaison de Docker Enterprise Edition avec RedHat OpenShift. Ces plateformes de conteneurs sont en concurrence directe et sont toutes deux considérées comme des distributions Kubernetes pouvant être exécutées sur site et dans le cloud. À l'heure où nous écrivons ces lignes, Docker-EE de Docker Inc. est en tête du peloton en termes de fonctionnalités et de ventes, mais la concurrence est rude de la part des fournisseurs de clouds publics qui proposent des plates-formes Kubernetes en tant que service et commencent à se tourner vers des plates-formes de conteneurs sans serveur plus avancées.
Voici de loin la meilleure explication pour les débutants. https://deis.com/blog/2016/kubernetes-illustrated-guide/
Ce n'est pas une blague, parfois nous devons voir les choses comme un enfant le ferait afin de vraiment comprendre.
Je ne dirais même pas qu'ils sont comparables. Openshift est une solution d'entreprise de Redhat qui s'appuie sur Kubernetes. Kubernetes est juste un cadre pour aider à organiser et automatiser le travail avec les conteneurs Docker. Je commencerais par la vidéo, puis je me pencherais sur Kubernetes à un niveau inférieur. Une fois que vous êtes à l'aise, commencez à examiner les fonctionnalités qu'openshift ajoute.
J'ai trouvé des lectures intéressantes sur ce sujet au cours des deux dernières années :
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.