GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Guida rapida su Docker Utilities, Daemon e le sue altre funzionalità

Introduzione

Docker sta svolgendo un ruolo molto critico sia come formato di confezionamento per le applicazioni che come interfaccia e metodologia unificanti che consente ai team dell'applicazione di possedere le immagini del contenitore formattate Docker (Nota:si presume che includano tutte le dipendenze). Ciò ha reso Docker uno dei leader nei microservizi e adattamento e utilizzo basati su microservizi.

Molte delle utilità basate su Docker e Docker ci aiutano a ottenere maggiori efficienze di scalabilità e prestazioni riducendo il footprint delle applicazioni tramite Dockerized contenitori. In molti casi le dipendenze a livello di sistema sono ridotte al minimo, il che aiuta a ridurre l'utilizzo della memoria in termini di MB (Mega byte).

Tutti questi aspetti hanno contribuito a rendere Docker una delle principali utility basate su container. Docker ha molte utilità e funzionalità della riga di comando. Docker Daemon può fornire molte di queste funzionalità aggiuntive e ciò semplifica la configurazione di Docker.

Leggi anche:Come installare Docker (Community Edition) su Ubuntu 16.04 / 18.04 LTS

Spero che il lettore/utente di questo articolo sappia come eseguire lo spin-off di docker-container su un determinato ambiente Linux. Supponendo ciò, vengono descritte alcune delle seguenti strutture,

Alcuni di questi servizi possono essere utilizzati per le seguenti funzioni,

  • Controlla le informazioni sul server Docker
  • Scarica immagini e aggiornamenti della finestra mobile
  • Ispeziona i contenitori
  • Visualizza e monitora i registri
  • Monitoraggio di varie statistiche e dettagli

1) Come controllare la versione attuale della finestra mobile

Conoscere la versione della finestra mobile è uno degli aspetti molto importanti poiché, a seconda di ciò, vengono prese molte delle decisioni basate sulla versione.

 [e -mail protetto]:~ $ sudo docker versionclient:versione:18.09.5 Versione API:1.39 GO Versione:GO1.10.8 Git Commit:E8FF056 BUILD:GHU 11 aprile 04:43:57 2019 OS/ARCH:Linux/ amd64 Sperimentale:      falseServer:Docker Engine - Community Engine:  Versione:          18.09.5  Versione API:      1.39 (versione minima 1.12)  Versione go:       go1.10.8  Git commit:       e8ff056  Costruito:   9     02 apr:1 / OS 10:04/11/04/20:02 linux/amd64  Sperimentale:     false[email protetta]:~$

Questo output precedente fornisce le stesse versioni dell'API del server e del client e anche la versione del sistema operativo e dell'architettura dovrebbe essere la stessa. In caso di mancata corrispondenza tra le versioni client e server, la comunicazione client-server avrà esito negativo. Bisogna accertarsi di quali siano le versioni di supporto e prendere decisioni di conseguenza.

2) Acquisizione e analisi delle informazioni sul server

Utilizzando le informazioni della finestra mobile possiamo anche trovare le seguenti informazioni. Alcune delle informazioni utili che possiamo raccogliere sono qualcosa come, quale server è in esecuzione come back-end, quale versione del kernel è, quale OS e directory radice Docker ecc

[email protetta]:~$ sudo docker infoContenitori:2 In esecuzione:1 In pausa:0 Arrestato:1 Immagini:4Versione server:18.09.5Driver di archiviazione:overlay2 Filesystem di supporto:extfs Supporta d_type:true Native Overlay Diff:trueLogging Driver:json -fileCgroup driver:cgroupfsPlugins:Volume:rete locale:ospite ponte macvlan nullo sovrapposizione Log:awslogs fluentd gcplogs GELF journald-di file jSON logentries locali Splunk syslogSwarm:inactiveRuntimes:runcDefault runtime:runcInit binarie:versione finestra mobile-initcontainerd:versione bb71b10fd8f58240ca47fbb579b9d1028eea7c84runc:versione 2b18fe1d885ee5083ef9f0838fee39b62d653e30init:fec3683Opzioni di sicurezza: apparmor seccomp  Profilo:defaultVersione kernel:4.15.0-20-genericSistema operativo:Ubuntu 18.04 LTSOSTipo:linuxArchitettura:x86_64CPU:1Memoria totale:1.947GiBNome:linuxtechiID:VRUY:AWXX:7JWE:YWU7:X4QW:TNPNKE:6H26::QFGI:XYRQ:QUXF:MTXCDocker Root Dir:/var/lib/dockerDebug Mode (client):falseDebug Mode (server):falseRegistry:https://index.docker.io/ v1/Labels:Experimental:falseRegistries Insecure: 127.0.0.0/8Live Restore abilitato:falseLicenza prodotto:Community EngineAVVERTENZA:nessun supporto per il limite di swap[email protected]:~$

Tutte le informazioni di cui sopra si basano sulla configurazione di Docker Daemon, sulla versione del sistema operativo sottostante e sul tipo di file system. Tutti questi possono essere acquisiti utilizzando il seguente set di comandi,

Esegui il comando seguente per ottenere il nome del sistema operativo, la sua versione e il nome del codice

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

o

[email protetta]:~$ 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 protetta]:~$

Esegui il comando sottostante per ottenere i dettagli del file system :

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

3) Demone Docker

Il demone Docker svolge un ruolo molto importante nell'ambiente Docker nel suo complesso.

Senza un demone adeguato, l'intero sistema Docker sarà inutile. Si può verificare lo stato del demone usando il seguente comando,

Nota :- Supponendo che l'installazione della finestra mobile sia stata eseguita correttamente

[email protetta]:~$ stato della finestra mobile del servizio sudo

Se il servizio Docker è in esecuzione, l'output del comando precedente dovrebbe essere simile al seguente:

Nel caso in cui il servizio Docker non sia in esecuzione, utilizzare il comando seguente per avviarlo

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

Utilizza sotto "docker ps ” comando per elencare i contenitori in esecuzione

[email protected]:~$ sudo docker psCONTAINER ID        IMAGE              COMANDO             CREATED            STATUS              PORTS               NOMI[email protected]:~$

Per elencare tutti i contenitori in esecuzione e interrotti, utilizza "docker ps -a

; ) 19 minuti fa                     vibrant_shannon[email protetta]:~$

La directory principale predefinita di Docker è "/var/lib/docker"

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

Il demone docker, se non avviato, può essere richiamato utilizzando il comando seguente,

[email protetta]:~$ sudo dockerd

Output di dockerd sopra il comando sarà qualcosa di simile al seguente:

Leggi anche:Come installare Docker su CentOS 7

4) Download dell'immagine del contenitore Docker e ispezione del contenitore

 [email protected]:~ $ sudo finestra mobile tirare ubuntu:latestUsing tag predefinito:latestlatest:Tirare dalla biblioteca / ubuntu898c46f3b1a1:Pull complete63366dfa0a50:Pull complete041d4cd74a92:Pull complete6e1bee0f8701:Pull completeDigest:sha256:017eef0b616011647b269b5c65826e2e2ebddbe5d1f8c1e56b3599fb14fabec8Status:immagine più recente scaricato ubuntu:ultimo [email protected]:~ $ ultimo:Tirare dalla biblioteca / ubuntu898c46f3b1a1:Pull complete63366dfa0a50:Pull complete041d4cd74a92:Pull complete6e1bee0f8701:Pull completeDigest:sha256:017eef0b616011647b269b5c65826e2e2ebddbe5d1f8c1e56b3599fb14fabec8Status:immagine più recente scaricato ubuntu:ultima 

L'avvio di un container, l'esempio è mostrato di seguito

; /bash"         27 secondi fa      Fino a 26 secondi                          bore_dijkstra[email protetta]:~$

Esaminiamo questo contenitore usando il seguente comando,

 [email protected]:~ $ sudo finestra mobile ispezionare 58c023f0f568 [{ "id":"58c023f0f5689ff08b858221ca10c985936a8c9dd91d08e84213009facb64724", "creato":"2019-04-14T06:55:26.289022884Z", "Path":"/ bin / bash ",        "Args":[],        "Stato":{            "Stato":"in esecuzione",            "In esecuzione":true,            "Pausa":false,             "Riavvio":false,            "OOM Killed":false,                  false,            "Pid":15538,           "ExitCode":0,            "Error":"",           "StartedAt":"2019-04-14T06:55:27.142274111Z",       0 1:"0:-01:01:"0:-01:" :00Z "}, "Immagine":"sha256:94e814e2efa8845d95b2112d54497fbad173e45121ce9255b93401392f538499", "ResolvConfPath":" /var/lib/docker/containers/58c023f0f5689ff08b858221ca10c985936a8c9dd91d08e84213009facb64724/resolv.conf",.......................................... …………

Nota:- L'output completo di questo comando non viene mostrato qui, perché l'output è troppo grande

5) Entrare nell'immagine del contenitore in esecuzione

Come si sa, Docker utilizzava originariamente tutto ciò che si basava sul backend LXC, il comando lxc-attach di Linux è stato utilizzato per un po' di tempo. Ma una volta che docker è stato creato come pacchetto autonomo e ha iniziato a utilizzare "libcontainer " come backend predefinito, l'utilizzo del comando "docker exec" è diventato popolare

Di seguito l'insieme di comandi spiega come accedere al contenitore utilizzando la riga di comando,

:~$ sudo docker exec -t  

[email protetta]:~$ sudo docker exec -t 58c023f0f568 ls -a. .dockerenv avvio ecc :55 pts/0    00:00:00 /bin/bashroot        20     0  0 07:17 pts/1    00:00:00 ps -ef[email protected]:~$

Il modo alternativo per eseguire i comandi all'interno del contenitore è, innanzitutto, accedere al contenitore utilizzando "collegamento mobile ” e quindi esegui i comandi

:~$ sudo docker allega

[email protetta]:~$ sudo docker allega 58c023f0f568[email protetta]:/#

Ci sono alcune situazioni in cui vuoi avviare un container, allegandogli un volume e quando usciamo dal container dovrebbe essere eliminato automaticamente, l'esempio è mostrato di seguito

[email protetta]:~$ sudo docker run -it --rm -v /usr/local/bin:/target jpetazzo/nsenter bash[email protetta]:/src# df -h /target/Filesystem      Dimensioni usato Avail Use% Montato su/dev/sda1        18G  5.6G   12G  34% /target[email protected]:/src# exitexit[email protected]:~$

Ora verifica se la finestra mobile viene rimossa o meno automaticamente quando usciamo dal contenitore, esegui "docker ps"

 [Email Protected]:~ $ sudo Docker PSCONAINER ID comando immagine Porte di stato creato nomi58c023f0f0f568 ubuntu "/bin/bash" circa un'ora fa circa un'ora Boring_dijkstra [e -mail protetta]:~ $ 

6) Docker di monitoraggio

Utilizza "statistiche Docker ” comando per visualizzare l'utilizzo delle risorse di tutti i contenitori,

 [e -mail protetto]:~ $ sudo docker statscontainer Nome ID CPU %Utilizzo / limite MEM %I / O Blocco I / O PIDS58C023F0F0F568 BOORING_DIJKSTRA 0,00 %1.059MIB / 1.947GIB 0,05 %4.75kb / 0B 4.74MB / 0B Nome ID 1CONTAINER CPU %MEM USAGE / LIMIT MEM %Net I / O Blocco I / O PIDS58C023F0F0F0F568 BOORING_DIJKSTRA 0,00 %1.059MIB / 1.947GIB 0,05 %4.75KB / 0B 4.74MB / 0B 1 [E -mail Protcted]:~ $ 

7) Eventi Docker

Molte volte l'acquisizione di eventi Docker sarà fondamentale in quanto fornirà informazioni su varie operazioni ed eventi Docker in corso. Di seguito l'istantanea della stessa.

[email protetta]:~$ 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 =locale) 2019-04-14T09:29:46,998,798935 millions + 01:00 container creare b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058 (image =wordpress, name =friendly_heisenberg) 2019-04-14T09:29:47,000,202026 millions + 01:00 container allegare b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058 (image =wordpress, name =friendly_heisenberg) 2019-04-14T09:29:47,209,257002 millions + 01:00 network connect 18dd93c3c6fc9ce51a98f7d2359b319db251efcae6b991157965ef727a580702 (contenitore =b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058, name =ponte, tipo =ponte) 2019-04-14T09:29:47,239,846902 millions + 01:00 di montaggio del volume 36187e0a44d277439fea0df2446fc44987fa814c52744091929e5c81bd8134e5 (container=b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d,79c05/va r/www/html, driver=locale, propagazione=, lettura/scrittura=true)2019-04-14T09:29:47.942997316+01:00 inizio contenitore b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058=40friendly0enberg-19c058=4-heis4058=4-heis41Tenberg=9-wordpress-amichevole 29:47,944,521098 millions + 01:00 contenitore ridimensionamento b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058 (altezza =39, image =wordpress, name =friendly_heisenberg, larghezza =130) 2019-04-14T09:29:59,829,378089 millions + 01:00 contenitore die b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058 (exitCode =0, =immagine wordpress, name =friendly_heisenberg) 2019-04-14T09:30:00.147435896 + 01:00 rete disconnessione 18dd93c3c6fc9ce51a98f7d2359b319db251efcae6b991157965ef727a580702 (contenitore =b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058, name =ponte, tipo =ponte) 2019-04-14T09:30:00.845336887 + 01:00 Volume smontaggio 36187e0a44d277439fea0df2446fc44987fa814c52744091929e5c81bd8134e5 (contenitore=b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d…79c0local5)… ………
Conclusione

La combinazione di tutti questi comandi e utilità è molto importante per rendere Docker e Container un ambiente basato su microservizi di successo. Poiché molte delle architetture di microservizi necessitano di questo tipo di utilità per eseguire il debug, comprenderle e saperne di più per l'utilizzo quotidiano, spero che questo articolo svolga un ruolo nell'aiutare questi casi.

Leggi anche:Come installare e utilizzare la composizione mobile per distribuire i container in CentOS 7


Docker
  1. Come installare Docker e Docker Compose su Debian 11

  2. Come eseguire Jupiter, Keras, Tensorflow e altre librerie ML in Docker

  3. Che cos'è Docker (e contenitori Linux?)

  4. Che cos'è Docker, Differenza tra Docker e VM, Installazione di Docker e suo utilizzo

  5. Guida per l'aggiornamento a MongoDB 5.0 e Rocket.Chat 4.0 su Docker

Guida alla recensione e all'aggiornamento di Linux Mint 20.1 "Ulyssa".

Come controllare i dettagli della versione di Ubuntu e altre informazioni di sistema

Esegui il provisioning di NGINX su Docker e aumenta le capacità del server

Come controllare la versione di Ubuntu:metodi semplici e veloci

.NET Core e Docker

.NET e Docker