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

Guide rapide sur Docker Utilities, Daemon et ses autres fonctionnalités

Présentation

Docker joue un rôle très critique à la fois en tant que format d'emballage pour les applications et en tant qu'interface et méthodologie unificatrices qui permettent à l'équipe d'application de posséder les images de conteneur au format Docker (Remarque :il est supposé inclure toutes les dépendances). Cela a fait de Docker l'un des leaders des microservices. et l'adaptation et l'utilisation basées sur les microservices.

De nombreux utilitaires basés sur Docker et Docker nous aident à améliorer l'efficacité de l'évolutivité et des performances en réduisant l'empreinte des applications grâce à Dockerized conteneurs. Dans de nombreux cas, les dépendances au niveau du système sont réduites au strict minimum, ce qui contribue à réduire l'utilisation de la mémoire en termes de Mo (méga-octets).

Tous ces aspects ont contribué à faire de Docker l'un des principaux utilitaires basés sur des conteneurs. Docker dispose de nombreux utilitaires et fonctionnalités de ligne de commande. Docker Daemon peut fournir bon nombre de ces fonctionnalités supplémentaires, ce qui facilite la configuration de Docker.

Lire aussi :Comment installer Docker (Community Edition) sur Ubuntu 16.04 / 18.04 LTS

J'espère que le lecteur/utilisateur de cet article saura comment spin-off docker-container sur n'importe quel environnement Linux donné. En supposant cela, certaines des installations suivantes sont décrites,

Certaines de ces installations peuvent être utilisées pour les fonctions suivantes,

  • Vérifier les informations du serveur Docker
  • Télécharger les images et les mises à jour Docker
  • Inspecter les conteneurs
  • Afficher et surveiller les journaux
  • Surveiller diverses statistiques et détails

1) Comment vérifier la version actuelle de Docker

Connaître la version de docker est l'un des aspects très importants car en fonction de cela, de nombreuses décisions basées sur la version sont prises.

 [Protégé par e-mail]:~ $ sudo docker versionClient:Version:18.09.5 API Version:1.39 Go Version:go1.10.8 Git Commit:E8FF056 Built:Thu 11 avril 04:43:57 2019 OS / Arch:Linux / amd64 Expérimental :      falseServeur :Docker Engine - Community Engine :  Version :          18.09.5  Version API :      1.39 (minimum version 1.12)  Version Go :       go1.10.8  Git commit :       e8ff056  Construit :                                   04 :10 avril :5 linux/amd64 Expérimental :     false[email protected] :~$

Cette sortie ci-dessus fournit les versions d'API serveur et client identiques et la version du système d'exploitation et de l'architecture doit également être la même. En cas de non-concordance entre les versions client et serveur, la communication client-serveur échouera. Il faut s'assurer des versions de support et prendre des décisions en conséquence.

2) Capturer et analyser les informations du serveur

En utilisant les informations du menu fixe, nous pouvons également trouver les informations suivantes. Certaines des informations utiles que nous pouvons recueillir sont quelque chose comme, quel serveur s'exécute en tant que backend, quelle version du noyau il s'agit, quel système d'exploitation et répertoire racine Docker, etc.

[email protected] :~$ sudo docker infoContainers :2 En cours d'exécution :1 En pause :0 Arrêté :1Images :4Version du serveur : 18.09.5Pilote de stockage : overlay2 Système de fichiers de sauvegarde : extfs Prend en charge d_type : true Différence de superposition native :trueLogging Driver :json -fileCgroup Driver:cgroupfsPlugins:Volume:réseau local:macvlan overlay null hôte pont Log:awslogs fluentd gcplogs FAES journald de logentries locales JSON-fichier syslogSwarm:inactiveRuntimes:runcDefault d'exécution:runcInit binaires:Version docker-initcontainerd:Version bb71b10fd8f58240ca47fbb579b9d1028eea7c84runc:Version 2b18fe1d885ee5083ef9f0838fee39b62d653e30init:fec3683Options de sécurité : apparmor seccomp Profil :defaultKernel Version :4.15.0-20-genericSystème d'exploitation :Ubuntu 18.04 LTSOSType :linuxArchitecture :x86_64CPU : 1Mémoire totale :1.947GiBName :linuxtechiID :VRUY:AWXX:7JWE:YWU7:X4QW:TNKE:6H26:PNRR :QFGI:XYRQ:QUXF:MTXCDocker Root Dir :/var/lib/dockerDebug Mode (client) :falseDebug Mode (serveur) :falseRegistry :https://index.docker.io/ v1/Labels : Expérimental : falseRegistres non sécurisés : 127.0.0.0/8Live Restore Enabled : falseLicence de produit :Community EngineAVERTISSEMENT :Aucune prise en charge de la limite d'échange[email protected] :~$

Toutes les informations ci-dessus sont basées sur la configuration du démon Docker, la version du système d'exploitation sous-jacent et le type de système de fichiers. Tous ces éléments peuvent être capturés à l'aide de l'ensemble de commandes suivant,

Exécutez la commande ci-dessous pour obtenir le nom du système d'exploitation, sa version et le nom du code

[email protected] :~$ cat /etc/lsb-releaseDISTRIB_ID=UbuntuDISTRIB_RELEASE=18.04DISTRIB_CODENAME=bionicDISTRIB_DESCRIPTION="Ubuntu 18.04 LTS"[email protected] :~$

ou

[email protected] :~$ cat /etc/*-releaseDISTRIB_ID=UbuntuDISTRIB_RELEASE=18.04DISTRIB_CODENAME=bionicDISTRIB_DESCRIPTION="Ubuntu 18.04 LTS"NAME="Ubuntu"VERSION="18.04 LTS (Bionic Beaver)"ID=ubuntuID_LIKE=debianPRETTY_NAME ="Ubuntu 18.04 LTS"VERSION_ID="18.04"HOME_URL="https://www.ubuntu.com/"SUPPORT_URL="https://help.ubuntu.com/"BUG_REPORT_URL="https://bugs.launchpad. net/ubuntu/"PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"VERSION_CODENAME=bionicUBUNTU_CODENAME=bionic[email protected] :~$

Exécutez la commande ci-dessous pour obtenir les détails du système de fichiers :

[email protected] :~$ montage | grep "^/dev"/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)[email protected] :~$

3) Démon Docker

Le démon docker joue un rôle crucial dans l'environnement docker dans son ensemble.

Sans un démon approprié, le système docker complet sera inutile. On peut vérifier l'état du démon en utilisant la commande suivante,

Remarque :- En supposant que l'installation correcte du docker soit effectuée

[email protected] :~$ état du menu fixe du service sudo

Si le service docker est en cours d'exécution, la sortie de la commande ci-dessus devrait ressembler à ceci :

Si le service docker ne fonctionne pas, utilisez la commande ci-dessous pour le démarrer

[email protected] :~$ sudo systemctl start dockeror[email protected] :~$ sudo service docker start[email protected] :~$

Utilisez ci-dessous "docker ps ” commande pour lister les conteneurs en cours d'exécution

[email protected] :~$ sudo docker psCONTAINER ID        IMAGE               COMMANDE             CRÉÉ             STATUT              PORTS               NOMS[email protected] :~$

Pour répertorier tous les conteneurs en cours d'exécution et arrêtés, utilisez "docker ps -a

 [Email Protected]:~ $ sudo docker ps -acontainer id commande de commande création de ports d'état noms497e6733d760 ubuntu "bash" il y a 19 minutes sorties (0) il y a 2 minutes goofy_morse0862fe109f96 hello-world "/ hello" il y a 19 minutes (0 ) Il y a 19 minutes                      vibrant_shannon[email protected] :~$

Le répertoire racine par défaut de Docker est "/var/lib/docker"

[email protected] :~$ sudo ls -l /var/lib/dockertotal 48drwx------  2 racine racine 4096 14 avril 07:00 builderdrwx------  4 racine racine 4096 14 avril 07 :00 buildkitdrwx------  4 racine racine 4096 14 avril 07:09 containersdrwx------  3 racine racine 4096 14 avril 07:00 imagedrwxr-x---  3 racine racine 4096 14 avril 07:00 networkdrwx ------ 16 racine racine 4096 14 avril 07:27 overlay2drwx------  4 racine racine 4096 14 avril 07:00 pluginsdrwx------  2 racine racine 4096 14 avril 07:27 runtimesdrwx-- ----  2 racine racine 4096 14 avril 07:00 swarmdrwx------  2 racine racine 4096 14 avril 07:27 tmpdrwx------  2 racine racine 4096 14 avril 07:00 trustdrwx---- --  2 root root 4096 14 avril 07:00 volumes[email protected] :~$

Le démon docker, s'il n'est pas démarré, peut être appelé à l'aide de la commande suivante,

[email protected] :~$ sudo dockerd

Sortie de dockerd ci-dessus commande sera quelque chose comme ci-dessous :

Lire aussi :Comment installer Docker sur CentOS 7

4) Téléchargement de l'image du conteneur Docker et inspection du conteneur

 [email protected]:~ $ sudo docker traction ubuntu:latestUsing balise par défaut:latestlatest:Tirer de la bibliothèque / ubuntu898c46f3b1a1:Pull complete63366dfa0a50:Pull complete041d4cd74a92:Pull complete6e1bee0f8701:Pull completeDigest:SHA256:017eef0b616011647b269b5c65826e2e2ebddbe5d1f8c1e56b3599fb14fabec8Status:Téléchargé l'image plus récente pour ubuntu:dernière [email protected]:~ $ dernière:Tirer de la bibliothèque / ubuntu898c46f3b1a1:Pull complete63366dfa0a50:Pull complete041d4cd74a92:Pull complete6e1bee0f8701:Pull completeDigest:SHA256:017eef0b616011647b269b5c65826e2e2ebddbe5d1f8c1e56b3599fb14fabec8Status:nouvelle image pour l'ubuntu Téléchargé:les dernières 

Lancement d'un conteneur, exemple ci-dessous

 [Protégé par e-mail]:~ $ sudo docker run -d -t ubuntu / bin / bash58c023f0f5689ff08b858221ca10c985936a8c9dd91d08e84213009facb64724 [nom de message /bash"         Il y a 27 secondes      Plus de 26 secondes                          boring_dijkstra[email protected] :~$

Inspectons ce conteneur en utilisant la commande suivante,

 [Protégé par e-mail]:~ $ sudo docker inspecter 58C023F0F568 [{"id":"58c023f0f5689ff08b858221ca10c985936a8c9dd91d08e84213009facb64724", "Created":"2019-04-14-14-1414106:55:":":":"2019-04-14-14-14-14. / BASH. ",        "Args":[],        "State":{            "Status":"running",            "Running":true,            "Paused":false,         "Restarting":false,            " OOMKilled":false,           :           :false,            "Pid":15538,            "ExitCode":0,            "Erreur":"",            "StartedAt":"2019-04-14T06:55:27.142274111Z",             "FinishedAt":"001-0":"001-0" :00Z "}, "image":"SHA256:94e814e2efa8845d95b2112d54497fbad173e45121ce9255b93401392f538499", "ResolvConfPath":" /var/lib/docker/containers/58c023f0f5689ff08b858221ca10c985936a8c9dd91d08e84213009facb64724/resolv.conf",.......................................... ………… 

Remarque :- La sortie complète de cette commande n'est pas affichée ici, car sa sortie est trop volumineuse

5) Aller à l'intérieur de l'image du conteneur en cours d'exécution

Comme on sait que Docker utilisait à l'origine tout ce qui était basé sur le backend LXC, la commande lxc-attach de Linux a été utilisée pendant un certain temps. Mais une fois que docker a été construit en tant que package autonome et a commencé à utiliser "libcontainer " comme backend par défaut, l'utilisation de la commande " docker exec " est devenue populaire

L'ensemble de commandes ci-dessous explique comment se connecter au conteneur à l'aide de la ligne de commande,

:~$ sudo docker  exec -t  

[email protected] :~$ sudo docker exec -t 58c023f0f568 ls -a. .Dockerenv Boot etc Lib Media Opt Root Sbin Sys USR .. :55 pts/0    00:00:00 /bin/bashroot        20     0  0 07:17 pts/1    00:00:00 ps -ef[email protected] :~$

L'autre façon d'exécuter des commandes à l'intérieur du conteneur est de se connecter d'abord au conteneur en utilisant "docker attach ” puis exécuter les commandes

:~$ sudo docker attach

[email protected] :~$ sudo docker attach 58c023f0f568[email protected] :/#

Il existe certaines situations où vous souhaitez lancer un conteneur, y attacher un volume et lorsque nous quittons le conteneur, il doit être supprimé automatiquement, l'exemple est illustré ci-dessous

[email protected] :~$ sudo docker run -it --rm -v /usr/local/bin:/target jpetazzo/nsenter bash[email protected]:/src# df -h /target/Filesystem      Taille  Utilisée Avail Use% Mounted on/dev/sda1        18G  5.6G   12G  34 % /target[email protected] :/src# exitexit[email protected] :~$

Vérifiez maintenant si docker est supprimé ou non automatiquement lorsque nous quittons le conteneur, exécutez "docker ps"

 [e-mail protégé]:~ $ sudo docker pscontainer id commande de commande création de ports d'état names58c023f0f568 ubuntu "/ bin / bash" il y a environ une heure environ une heure boring_dijkstra [e-mail protégé]:~ $ 

6) Docker de surveillance

Utilisez "statistiques docker ” commande pour afficher l'utilisation des ressources de tous les conteneurs,

 [Protégé par e-mail]:~ $ sudo docker statSontainer ID Nom CPU% MEM Utilisation / limite MEM% Net E / O Block I / O PIDS58C023F0F568 BORING_DIJKSTRA 0,00% 1.059MB / 1,947GIB 0,05% 4.75KB / 0B 4.74MB / 0B 1Container ID Nom CPU% MEM Utilisation / limite MEM% E / S BLOC NET E / S PIDS58C023F0F568 BORING_DIJKSTRA 0,00% 1.059MB / 1.947GIB 0,05% 4.75KB / 0B 4,74MB / 0B 1 [Protégé par e-mail]:~ $ 

7) Événements Docker

La capture d'événements Docker sera souvent cruciale, car cela fournira des informations sur diverses opérations Docker et événements en cours. Vous trouverez ci-dessous l'instantané de la même chose.

[email protected] :~$ sudo docker events2019-04-14T09:29:07.636990738+01:00 image pull wordpress:latest (name=wordpress)2019-04-14T09:29:46.936676431+01:00 volume create 36187e0a44d277439fea0df2446fc44987fa814c52744091929e5c81bd8134e5 (driver =local) 2019-04-14T09:29:46,998798935 + 01:00 conteneur créer b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058 (image =wordpress, name =friendly_heisenberg) 2019-04-14T09:29:47,000202026 + 01:00 conteneur attacher b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058 (image =wordpress, name =friendly_heisenberg) 2019-04-14T09:29:47,209257002 + 01:00 réseau de connexion 18dd93c3c6fc9ce51a98f7d2359b319db251efcae6b991157965ef727a580702 (=conteneur b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058, name =pont, type =pont) 2019-04-14T09:29:47,239846902 + 01:00 de montage de volume 36187e0a44d277439fea0df2446fc44987fa814c52744091929e5c81bd8134e5 (conteneur=b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058, destination/va r/www/html, driver=local, propagation=, read/write=true)2019-04-14T09:29:47.942997316+01:00 démarrage du conteneur b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058 (image=wordpress, name=friendly) 29:47,944521098 + 01:00 conteneur redimensionnement b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058 (hauteur =39, image =wordpress, name =friendly_heisenberg, largeur =130) 2019-04-14T09:29:59,829378089 + 01:00 matrice contenant b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058 (ExitCode =0, image =wordpress, name =friendly_heisenberg) 2019-04-14T09:30:00,147435896 + 01:00 déconnexion réseau 18dd93c3c6fc9ce51a98f7d2359b319db251efcae6b991157965ef727a580702 (=récipient b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058, name =pont, type =pont) 2019-04-14T09:30:00,845336887 + 01:00 en volume de démontage 36187e0a44d277439fea0df2446fc44987fa814c52744091929e5c81bd8134e5 (conteneur =b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058, ……… 
Conclusion

La combinaison de toutes ces commandes et utilitaires est très importante pour faire de docker et de conteneur un environnement basé sur des microservices réussi. Comme de nombreuses architectures de microservices ont besoin de ces types d'utilitaires pour déboguer, comprendre et en savoir plus sur eux pour une utilisation quotidienne, j'espère que cet article jouera un rôle dans de tels cas.

Lire aussi :Comment installer et utiliser docker-compose pour déployer des conteneurs dans CentOS 7


Docker
  1. Comment exécuter Jupiter, Keras, Tensorflow et d'autres bibliothèques ML dans Docker

  2. Qu'est-ce que Docker (et les conteneurs Linux ?)

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

  4. Un guide rapide pour utiliser Docker Compose

  5. Guide de mise à niveau vers MongoDB 5.0 et Rocket.Chat 4.0 sur Docker

Guide de révision et de mise à niveau de Linux Mint 20.1 "Ulyssa"

Comment vérifier les détails de la version d'Ubuntu et d'autres informations système

Provisionnez NGINX sur Docker et augmentez les capacités du serveur

Comment vérifier la version d'Ubuntu - Méthodes rapides et faciles

.NET Core et Docker

.NET et Docker