GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Qu'est-ce que Docker, Différence entre Docker et VM, Installation de Docker et son utilisation

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.

Machines virtuelles Conteneurs 1.Nécessite un hyperviseur et un système d'exploitation complet à l'intérieur 1. Parle au noyau hôte 2. Empreinte plus importante (RAM et espace de stockage) 2. Encombrement réduit (pas de RAM et de stockage différentiel) 3. Les VM consomment de l'espace de stockage pour chaque instance ~1,2 Go 3. Consomme très peu d'espace ~2,5 Mo 4. Plus lourd 4. Léger 5. Le temps de démarrage des machines virtuelles est de l'ordre de quelques minutes 5. Le temps de démarrage est de l'ordre des secondes 6. Le déploiement est difficile. 6. Déploiement facile avec des exigences minimales pour exécuter l'application 7. Plus lent 7. Plus rapide 8. Problèmes de sécurité liés au système d'exploitation en cours d'exécution 8. Problèmes de sécurité limités aux applications

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

Docker
  1. Quelle est la différence entre les conteneurs LXC, LXD et Docker

  2. différence entre podman et docker.

  3. La différence entre CMD et ENTRYPOINT dans les images Docker

  4. Quelle est la différence entre arm64 et armhf ?

  5. Quelle est la différence entre fsck et e2fsck ?

Docker :installation et utilisation de base sur Ubuntu 16.04

Quelle est la différence entre Linux et Unix ?

Quelle est la différence entre les instructions COPY et ADD dans Dockerfile ?

Qu'est-ce qu'un Hyperviseur ? Quelle est la différence entre les types 1 et 2 ?

Quelle est la différence entre curl et Wget ?

Quelle est la différence entre un appel système et un appel de bibliothèque ?