Auparavant, nous avons vu les installations d'hyperviseurs comme Xen et de middleware cloud comme openstack. Récemment, une nouvelle technologie appelée Docker Container est devenue la tendance la plus en vogue dans le développement d'applications. Dans cet article, nous verrons ce qu'est exactement un docker, ses différences avec les machines virtuelles, l'installation de docker et son utilisation.
Qu'est-ce que Docker ?
Docker est un conteneur qui encapsule un logiciel dans un système de fichiers complet qui contient tout ce dont il a besoin pour s'exécuter :code, temps d'exécution, outils système, bibliothèques système - tout ce que vous pouvez installer sur un serveur. Les conteneurs se virtualisent au niveau du système d'exploitation, ce qui le rend plus efficace que les hyperviseurs dans l'utilisation des ressources système. Il existe de nombreuses technologies de conteneurs Linux comme LXC, Docker etc.,
Quelle est la différence entre Docker et une machine virtuelle ?
Avec une approche architecturale différente, les conteneurs sont beaucoup plus portables et efficaces, même s'ils ont une isolation des ressources similaire. L'image ci-dessous montre la différence architecturale entre un conteneur et des machines virtuelles.
Comment installer un conteneur Docker sur CentOS 7 ?
La dernière version officielle de Docker est la v1.10. Les instructions ci-dessous concernent l'installation de Docker Container sur le serveur CentOS 7. Connectez-vous au serveur CentOS 7 en tant que root et suivez les étapes ci-dessous.
Étape 1 : Comme bonne pratique, mettons à jour le système en utilisant yum comme indiqué ci-dessous :
# yum -y update
Étape 2 : Par défaut, Docker est inclus dans le référentiel CentOS-Extra. Si vous souhaitez utiliser une version plus récente de docker, exécutez la commande ci-dessous pour l'ajouter au dépôt.
# tee /etc/yum.repos.d/docker.repo <<-'EOF'
> [dockerrepo]
> name=Docker Repository
> baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
> enabled=1
> gpgcheck=1
> gpgkey=https://yum.dockerproject.org/gpg
> EOF
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
Étape 3 : Installez le package docker et le registre docker. Le registre Docker est une application côté serveur hautement évolutive et sans état qui stocke et vous permet de distribuer des images Docker.
# yum -y install docker docker-registry
Étape 3 : Une fois l'installation de Docker réussie, démarrez le service Docker.
# systemctl start docker.service
Étape 4 : Assurez-vous que le service Docker démarre au démarrage avec la commande ci-dessous :
# systemctl enable docker.service
Étape 5 : Vérifier le service docker
# systemctl status docker.service
docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2016-03-22 16:29:00 IST; 20h ago Docs: http://docs.docker.com Main PID: 30108 (docker) CGroup: /system.slice/docker.service ââ30108 /usr/bin/docker daemon --selinux-enabled
Mar 22 17:10:12 vm1 docker[30108]: time="2016-03-22T17:10:12.541577770+05:3...1" Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429417681+05:3...0" Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429730128+05:3...s" Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429781346+05:3...04 Mar 22 17:11:13 vm1 docker[30108]: time="2016-03-22T17:11:13.020019713+05:3...0" Mar 22 17:11:23 vm1 docker[30108]: time="2016-03-22T17:11:23.021293894+05:3...e" Mar 22 17:11:28 vm1 docker[30108]: time="2016-03-22T17:11:28.600657892+05:3...n" Mar 22 17:11:35 vm1 docker[30108]: time="2016-03-22T17:11:35.938950613+05:3...0" Mar 22 17:11:45 vm1 docker[30108]: time="2016-03-22T17:11:45.939810804+05:3...e" Mar 22 17:11:57 vm1 docker[30108]: time="2016-03-22T17:11:57.720737864+05:3...n" Hint: Some lines were ellipsized, use -l to show in full.
Comment utiliser Docker ?
Étape 1 : Téléchargez un conteneur Docker. Exécutez la commande ci-dessous pour obtenir la dernière image CentOS officielle stable :
# docker pull centos
La commande ci-dessus extrait la dernière version stable de centos. Pour extraire toute autre version de l'image CentOS, par exemple CentOS 6 :
# docker pull centos:centos6
Étape 2 : Pour vérifier que les images ont été téléchargées localement :
# docker images centos REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE docker.io/centos latest bb3d629a7cbc 2 weeks ago 196.6 MB
Étape 3 : Pour répertorier toutes les images téléchargées disponibles :
# docker images
Comment exécuter un conteneur Docker
Étape 1 : Exécutez un conteneur Centos de base avec un shell bash. Tiens, -je l'option attache stdin et stdout , -t alloue un tty .
# docker run -i -t centos /bin/bash
C'est ça! Vous êtes maintenant atterri sur un shell bash à l'intérieur d'un conteneur Docker Centos.
Commandes pour travailler avec les conteneurs Docker
1. Pour vous déconnecter ou vous détacher du conteneur sans arrêter le conteneur :
Ctrl-p + Ctrl-q
2. De nombreux conteneurs sont déjà disponibles par communauté. Pour lister les conteneurs de la communauté :
# docker search centos INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.io/centos The official build of CentOS. 2042 [OK] docker.io docker.io/jdeathe/centos-ssh CentOS-6 6.7 x86_64 / CentOS-7 7.2.1511 x8... 18 [OK] docker.io docker.io/jdeathe/centos-ssh-apache-php CentOS-6 6.7 x86_64 / Apache / PHP / PHP M... 14 [OK] ... ...
# docker search ubuntu INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.io/ubuntu Ubuntu is a Debian-based Linux operating s... 3464 [OK] docker.io docker.io/ubuntu-upstart Upstart is an event-based replacement for ... 60 [OK] docker.io docker.io/torusware/speedus-ubuntu Always updated official Ubuntu docker imag... 25 [OK] docker.io docker.io/rastasheep/ubuntu-sshd Dockerized SSH service, built on top of of... 23 [OK] ... ...
3. Lister tous les conteneurs
# docker ps -a
4. Répertorier uniquement les conteneurs en cours d'exécution
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4293c8265d00 centos "/bin/bash" 22 hours ago Up 9 seconds agitated_poincare
5. Arrêter un conteneur
Obtenez l'ID du conteneur dans la liste ci-dessus et utilisez-le pour arrêter le conteneur respectif :
# docker stop 4293c8265d00
6 :Redémarrez le service docker
# systemctl restart docker.service