-
Images basées sur Os
Bonjour à tous,
Depuis quelques semaines j'essaie de comprendre le fonctionnement de base de Docker. J'ai compris, qu'à contrario, d'une virtualisation Classique, le système docker utilise l'OS de la machine hôte, ainsi que la RAM CPu etc....
Par contre, une chose que je ne comprends pas c'est la différence existant avec les images sur docker-hub.
Prenons, par exemple, Php ou python. Dans les dépôt, on trouve des images basées sur Alpine (par exemple) et d'autres non. Alpine étant une distribution linux extrêmement légère.
Du coup voici mes questions :
1) Pourquoi certaines images se basent sur un OS, puisqu'en théorie, un container utilise l'OS hote. ?
3) Lorsqu'une image se base sur un OS (alpine par ex.), est-ce que la totalité de l'OS est contenu dans l'image ?
2) Pourquoi d'autres images ne se basent pas sur un OS. ?
JE vous remercie par avance pour vos réponses qui me permettront de bien comprendre le fond de Docker.
Bonne journée à tous
-
Les images Docker ne se basent pas sur un "OS" (on devrait plutôt dire distribution), mais sur le noyau Linux. Elles peuvent donc utiliser Alpine, Debian, Redhat.
Une image docker va s'appuyer sur une image d'une distribution minimale (mais effectivement complète), à laquelle on ajoutera ce qu'on a besoin.
Beaucoup d'images sont basés sur Alpine car la distribution minimale est très légère. Quand tu créé une image Docker, si tu connais Debian mais pas Alpine, mieux vaut utiliser Debian, mais les conteneurs seront plus gros.
-
Bonjour chrtophe et merci pour ta réponse,
Je comprends mieux les éléments. Mais du coup, je me pose une autre question :
Imaginons que je veuille mettre en place, pour faire simple, un lamp, sans DL une image lamp, il ma faut :
- Une image php, une apache, une mariadb.
Faut-il que chaque image soit basée sur Alpine ou Debian, etc... Ou je dois-je (puis-je), mettre en place une image alpine et mettre en place des dépendances (??), entre les différentes images et celle d'alpine.
Je suis un peu désolé si mes questions paraissent idiotes, mais j'essaie de comprendre pleinement la logique de fonctionnement de docker et ne pas faire que DL des images sans voir ce qu'il se passe.
Bonne journée
-
Si tu ne veux pas récupérer un image docker avec lamp, il te faudra prendre une image de base ou une image avec un Apache2 par exemple, et il te faudra ajouter ce dont tu as besoin dans l'image. Tu créera ainsi une nouvelle image basée sur une image de base. Cette image sera un delta de l'mage de base.
Même si tu télécharge une image Lamp, celle-ci sera un delta d'une autre image, qui sera téléchargé comme une dépendance.
Ca marche en couche.