Docker et le principe de container

Tech et Architecture
Vignette docker et le principe de container

Qu’est-ce qu’un conteneur ?

Afin de comprendre ce qu’est l’outil Docker, il faut d’abord savoir ce qu’est un container ou conteneur en français.
Imaginez une sorte de “boîte” dans laquelle on peut installer tout un environnement de travail telles que des applications et leurs librairies.
C’est en réalité une technique de virtualisation, cependant celle-ci est clairement différente de celle utilisée pour les machines virtuelles(VM).
En effet une machine virtuelle, comme son nom l’indique, n’est ni plus ni moins qu’une machine sans Hardware propre ( composants physiques d’un ordinateur).
La VM peut comprendre un OS ( système d’exploitation), avec toute son administration système (gestion des ports, périphériques, etc …), interface visuelle, ainsi que ses applications installées.

Container versus VM : une affaire de ressources.

Bon, si le conteneur est une boite et qu’il permet d’utiliser les mêmes applications qu’une machine virtuelle, pourquoi s’embêter ?
La grande bataille se joue sur la gestion des ressources : la VM est plus gourmande !
Et c’est là où le rôle du conteneur intervient. Cette simple “boîte d’exécution”, fonctionne avec l’OS hôte (Linux la majorité du temps) !
Elle est donc :

  • moins lourde
  • plus rapide à télécharger, installer, sauvegarder, restaurer ou même migrer
  • plus facile à partager

Un déploiement facilité par sa portabilité.

De ce fait, l’outil offre beaucoup plus d’aisance pour son déploiement.
Eh oui, le conteneur est indépendant des autres infrastructures, ce qui induit qu’il peut donc être déplacé n’importe où sans entraîner de problèmes de compatibilités.
Il peut être partagé entre tous les développeurs, et donc garantir un environnement de développement commun, extrêmement proche de celui de production tout en facilitant sa mise en place.
Il est alors possible de migrer une application de façon fluide de l’environnement de développement jusqu’à l’environnement de production.
Les déploiements sont également accélérés et facilités grâce à certains outils annexes.
Cerise sur le gâteau,  les administrateurs système n’ont plus besoin de gérer les versions des logiciels sur l’ensemble de leurs serveurs.

Docker permet de manipuler des conteneurs.

Tout d’abord, il faut savoir que Docker dispose de plusieurs outils.
Nous allons nous intéresser aujourd’hui en priorité à Docker Engine, l’exécuteur de conteneur de Docker.
Pour créer un container Docker il faut nécessairement se baser sur une image.
L’image contient tous les éléments permettant de faire fonctionner votre conteneur.
Si vous souhaitez créer un container Mysql 5.7, il faudra vous baser sur une image Mysql 5.7.
Les images sont disponibles sur le gestionnaire d’image officiel appelé Docker–Hub.
Il fonctionne de la même manière que apt-get, npm, yarn ou bien composer. Il en existe une infinité pour toute sorte de logiciel (ubuntu, apache, nginx, php, node, ruby, python, java, mysql, postgres, mongo, wordpress, prestashop, magento, etc.). Sachez que vous avez la possibilité de créer vos propres images en vous basant, ou non, sur des images existantes grâce aux Dockerfiles.

Créer un conteneur Docker.

$ docker run mysql:5.7

Votre conteneur aura son propre cycle de vie, vous pourrez l’arrêter et le relancer en conservant les données issues de vos manipulations. De base, les données sont conservées à l’intérieur du conteneur et ne sont pas accessibles depuis votre propre machine. Si vous supprimez votre conteneur, vous perdrez vos données à moins d’utiliser les volumes.
Les volumes sont des dossiers partagées entre le conteneur et l’hôte (votre ordinateur par exemple). Il apporte une persistance aux données du conteneur.
Dans le cas du conteneur Mysql 5.7, on choisi de partager le dossier “/var/lib/mysql”. Ainsi on garde en mémoire les fichiers des différentes bases de données créées dans le container.
Des paramètres de configurations de mysql peuvent être communiqués au conteneur grâce à des variables d’environnement au lancement de docker. On peut par exemple définir un mot de passe root spécifique grâce au paramètre -e de la ligne de commande suivante :

$ docker run –name mysql-numendo -e MYSQL_ROOT_PASSWORD=numendopassword -d mysql:5.7

Définir un volume.

Pour définir un volume, on utilise le paramètre -v :
$ docker run –name mysql-numendo -v /projets/numendo/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=numendopassword -d mysql:5.7

Ici, le répertoire de notre ordinateur (celui de l’hôte) situé dans /projets/numendo/mysql est partagé avec le répertoire /var/lib/mysql situé dans le conteneur que l’on vient de créer.
Ainsi, toutes les modifications apportées par le conteneur aux fichiers de ce volume, se répercutent dans notre dossier situé sur notre ordinateur, et inversement.
Cela apporte une persistance aux données de vos conteneurs même si ces derniers sont supprimés. Ces données peuvent être partagées à un tier, ce qui lui permettra de créer un container identique au vôtre à partir de la même image (mysql:5.7) qui sera récupérée via Docker-Hub.À titre d’exemples, nous avons eu l’occasion d’utiliser Docker dans le cadre de l’intégration continue et du déploiement ;  d’un serveur local LAMP WordPress ; d’un serveur Gitlab,  ainsi qu’un serveur OpenStreetMap.
Et vous, avez-vous déjà utiliser Docker, si oui pour quelle utilisation ?Ces explications abordent seulement la partie visible de l’iceberg, ou devrions-nous dire, du cargo …
Dans un prochain article, nous nous intéresserons à l’administration et l’orchestration des conteneurs Docker.
Cet article vous a plu, n’hésitez pas à consulter notre blog !
On aime découvrir les nouvelles technologies web, mais plus encore vous les partager !

Et si on échangeait ?

Façonnez l’avenir digital de votre marque. Que vous souhaitiez harmoniser vos points de contact, créer des expériences client unifiées ou optimiser votre écosystème omnicanal, nous concevons des solutions qui marient innovation et élégance.

Parler à un expert

Perspectives,
ce qu’il faut retenir

Toutes les actualités
Replatforming E-commerce pourquoi et comment migrer de Salesforce Commerce Cloud (SFCC) vers Shopify Plus
Tech et Architecture 19.08.2026

Replatforming E-commerce : pourquoi et comment migrer de Salesforce Commerce Cloud (SFCC) vers Shopify Plus ?

Certification_Microsoft_Azur Numendo
Tech et Architecture 15.04.2025

Pourquoi la certification Microsoft AZ-900 est un excellent point de départ pour monter en compétence sur Azure

Mehdi developpeur fullstack senior
Tech et Architecture 02.05.2024

Mehdi, développeur full-stack sénior chez Numendo : « J’avais un parcours classique que je n’ai finalement pas suivi »

Image représentant l'article CI / CD
Tech et Architecture 04.05.2021

Livrer efficacement grâce à l’approche CI / CD

Agence Numendo Paris

48 rue de la Bienfaisance
75 008 Paris

Notre agence parisienne accompagne les marques et les grands comptes dans leurs projets digitaux les plus stratégiques.

Située à 10 minutes de la gare Saint-Lazare et à deux pas du métro Miromesnil, elle réunit nos experts en conseil, e-commerce, data produit et architecture omnicanale.

Numendo Paris incarne l’alliance entre vision stratégique, expertise technique et proximité client.

Faites partie de l’aventure
Numendo Paris

Rejoindre Numendo Paris, c’est intégrer un hub d’innovation où l’excellence technique rencontre l'esprit entrepreneurial. Un cadre stimulant pour piloter des projets stratégiques de renommée internationale au cœur de la capitale.

Agence Numendo Mulhouse

2a Av. Auguste Wicky
68 100 Mulhouse

L’agence de Mulhouse est le pôle d’excellence technique dédié à la performance de vos plateformes métiers.

Implantés au cœur de l’Alsace à deux pas de la gare de Mulhouse et a proximité directe de l’Allemagne et de la Suisse, nos locaux accueillent une communauté de passionnés centrée sur l’innovation et la robustesse du code.

Elle symbolise la force de frappe technologique du groupe, capable de bâtir des écosystèmes B2B et industriels hautement complexes.

Faites partie de l’aventure
Numendo Mulhouse

S’épanouir à Mulhouse, c’est intégrer un pôle historique où priment la passion technologique et la solidarité.
Un environnement à taille humaine idéal pour relever des défis industriels et techniques d'envergure.

Agence Numendo Genève

Rue du Marché 5,
1204 Genève

Notre agence genevoise allie culture de la précision et expertise digitale pour faire rayonner vos projets en Suisse et à l’international.

Idéalement située en plein coeur de Genève, elle offre un cadre de travail privilégié pour accompagner la transformation data des acteurs les plus exigeants.

Genève est le hub dédié à la structuration de l’information produit et au déploiement de stratégies e-commerce agiles et évolutives principalement dans le secteur du luxe et de la finance.

Faites partie de l’aventure Numendo Genève

Faire partie de l’équipe Genève, c’est cultiver l’exigence et la précision pour un digital performant et durable. Un cadre de travail privilégié pour transformer le futur des données produits et du e-commerce suisse.