Vote

Docker est un logiciel libre qui permet de facilité le déploiement d’applications isolées dans des containers logiciels pour être exécutées dans des environnements variés. Docker est un outil très utilisé dans des environnements de développement pour résoudre les problématiques d’intégration (CI) et de déploiement continu (CD).

Présentation

Contrairement aux machines virtuelles reposant sur une infrastructure physique, Docker permet de mutualiser la couche physique et la couche système d’exploitation en empaquetant l’application et ses dépendances (librairies, fichiers de configuration …).
Avantages : un seul OS à administrer, tous les containers sont isolés.

Voici en images la différence entre Container et VM:

Un registre public maintenu par une communauté active permet à Docker de mettre à disposition des containers prêt à être exécutés très rapidement.

Docker est basé sur LXC (Linux Containers) et intègre les éléments suivants :

Fonctionnalité du noyau Linux pour limiter, compter et isoler les ressources (CPU, RAM, etc.) utilisées par un groupe de processus.

Gestion avancée des permissions aussi bien au niveau des applications qu’au niveau du système de fichiers.

Fonctionnalité du noyau Linux qui permet l’isolation, afin de s’assurer qu’un container ne puisse pas en affecter un autre.

Fonctionnalité qui permet de changer la racine d’un processus, afin de l’isoler sur un système par mesure de sécurité.

Docker propose des services pour effectuer facilement différentes actions : créer, éditer, publier et exécuter des containers. Vous entendrez souvent parler de containers, d’images et de DockerFile :

Fichier source qui contient les instructions, éléments à installer, c’est un fichier de configuration.

Compilation d’un fichier DockerFile pour former une image portable, prête à être déployée

Exécution d’une image, mise en container d’une image.


Installation

Pour installer Docker sous Debian 8, il vous suffira de passer par l’outil de gestion des paquets :

Sous Debian 7, il est nécessaire d’ajouter la source deb http://http.debian.net/debian wheezy-backports main dans le fichier sources.list.
On pourra ensuite exécuter les commandes suivantes pour mettre à jour notre liste de source, installer wheezy-backports :

Installez Docker grâce à la commande d’exécution d’un script suivante :

Une fois Docker installé, il vous suffira de lancer le service :


Création d’un container

Dans cet exemple, nous installerons un container Nginx depuis les images disponibles dans les dépôts Docker :

Pensez à orienter votre choix entre la description, la popularité et le fait que ce soit un container officiel ou non.
Nous allons rapatrier l’image container Nginx officielle :

On vérifie notre liste d’image:

On peut constater qu’elle a été bien rapatriée :

On installe le container :

On vérifie que le container est bien installé :

Vous pouvez voir votre container ainsi exécuté (retrouvez le détail de la commande docker ps plus bas) puis on démarre notre container :

Par défaut, Docker utilise du NAT pour faire correspondre des ports d’entrée sur le serveur renvoyés vers les ports d’écoute des différents containers avec l’option -p :

Le port d’hôte correspond au port sur lequel vous devez contacter l’hôte pour accéder au service, le port container correspond au port vers lequel sera redirigée la requête au niveau du container.
Nous allons créer un second container en rajoutant cet argument :

Vous pourrez voir que le service est actif en ouvrant votre navigateur sur http://IP_HOTE:1234


DockerFile

Vous pouvez créer votre propre container à partir d’un fichier de configuration nommé Dockerfile.
Nous allons créer un container Debian et installer un serveur apache2 accessible depuis l’extérieur.
Voici le contenu du fichier Dockerfile :

Nous pouvons maintenant créer notre container depuis le Dockerfile avec cette commande :

On installe notre container en mappant le port 5555 de l’hôte vers le port http du container :

Vous pouvez désormais vérifier que le serveur apache est accessible depuis cette URL : http://IP_HOTE:5555


Commandes utiles

La commande suivante permet d’afficher la liste des containers en cours d’exécution :

Identifiant du container.

Identifiant nominatif de l’image du container.

Commande passée en paramètre lorsque le container a été créé.

Date de création du container.

État du container.

Les différentes redirections de ports configurées.

Nom aléatoire donné au conteneur, ceci est personnalisable grâce à l’option -name lors de l’exécution docker run.

Voici quelques autres commandes utiles :

Vous pouvez trouver toutes les images docker sur https://hub.docker.com/explore/

Retrouvez toutes les commandes liées à docker dans l’aide :

Catégories : DevopsTutoriaux

JN Community

Les Ressources, en particulier les tutoriaux, présupposent que l’Utilisateur qui décide de les mettre en œuvre dispose des connaissances, des compétences et de l’expérience nécessaire pour cette mise en œuvre. L’Utilisateur disposant d’une connaissance, compétence et/ou expérience limitée ou insuffisante doit absolument s’abstenir de mettre en œuvre les Ressources par lui-même.
Jaguar Network décline toute responsabilité quant aux conséquences dommageables de la mise en œuvre des Ressources, notamment sur les infrastructures informatiques de l’Utilisateur, de ses commettants ou préposés ou de tout tiers.
Il est précisé en tant que de besoin que toute intervention de Jaguar Network visant à réparer les dommages causés par la mise en œuvre des Ressources par un Utilisateur ne disposant pas des connaissances, compétences et/ou expériences suffisantes sera facturée et fera l’objet d’un devis préalable et d’un bon de commande aux conditions des contrats Jaguar Network en vigueur.

Articles similaires

Système

Les redirections sous Nginx

Vote En utilisant Nginx, vous pouvez avoir besoin de mettre en place des redirections. Ce tutoriel va vous guider sur la mise en place de ces redirections en configurant vos vhosts. Articles similaires

Sécurité

Protéger un fichier ou répertoire de la suppression sous Linux

En tant qu’administrateur, il peut être utile d’empêcher un fichier ou un répertoire d’être supprimé de votre système. Articles similaires

Système

Attribuer des droits root à un utilisateur (sudo) sous Linux

Il peut nécessaire pour diverses raisons d’attribuer temporairement ou non des droits root à un utilisateur, ce tutoriel explique ce principe. Articles similaires