Image Docker (image) et conteneur (conteneur)

Qu'est-ce qu'une image (image) Docker?

  • L'image miroir est composée de plusieurs couches. Une fois que chaque couche est superposée, elle ressemble à un objet indépendant de l'extérieur;
  • À l'intérieur de l'image se trouve un système d'exploitation (OS) simplifié, qui contient également les fichiers et les dépendances nécessaires à l'exécution de l'application;
  • L'image peut exécuter un ou plusieurs conteneurs, et l'image peut également arrêter le fonctionnement d'un conteneur et créer une nouvelle image à partir de celui-ci;

[Classification des images miroir (iamge)]


[Commandes courantes de mise en miroir (image)]

  • docker image pull = "télécharger l'image (télécharger à partir du service d'entrepôt d'images public distant Docker Hub par défaut);
  • docker image pull alpine: latest = "Tirez [label / version] de l'entrepôt apline de Docker Hub comme dernière image;
  • docker image pull nginx: latest = "Extraire [label / version] de l'entrepôt nginx de Docker Hub comme dernière image;
  • docker image pull -a nginx / xxx = "Tirez toutes les images de l'entrepôt, le paramètre -a est tout;
  • docker image ls -a ou docker images -a = "Liste les images stockées sur l'hôte Docker local (non affiché), le paramètre -a est tout;
  • docker image history nginx = "Afficher les informations d'installation du miroir nginx;
  • docker image inspect ubuntu: latest = "Afficher les informations sur la couche d'image ubuntu, afficher tous les détails de l'image (y compris les données et les métadonnées de la couche d'image);
  • docker image rm ubuntu: latest = "Supprimer l'ubuntu: dernière image;
  • docker image build = "créer une toute nouvelle image;

[Afficher les paramètres de configuration de la commande de gestion des images (commande)]

  • image docker [nom de la commande spécifique] --help = "afficher l'image correspondant aux paramètres de configuration de la commande de gestion

【Filtre de paramètres - filtre】

  • image docker ls --filter dangling = true =》 Retourner au pendant ( pendant / miroir sans étiquette est appelé miroir pendant , affiché dans la liste comme <aucun>: <aucun>) miroir;

  • docker image prune =》 Supprime toutes les images virtuelles suspendues. Si le paramètre -a est ajouté, Docker supprimera en plus les images inutilisées (les images qui ne sont utilisées par aucun conteneur);

Docker prend actuellement en charge les filtres suivants:
    dangling: vous pouvez spécifier true ou false, et ne renvoyer que des images virtuelles pendantes (true) ou des images virtuelles non pendantes (false).
    before: Requiert le nom ou l'ID de l'image comme paramètre et renvoie toutes les images créées auparavant.
    depuis: similaire à avant, mais renvoie tous les miroirs créés après le miroir spécifié.
    étiquette: filtre l'image en fonction du nom ou de la valeur de l'étiquette.

    docker image ls --filter = reference = "*: latest" =》 La référence termine le filtrage et n'affiche que l'exemple
    dont le libellé est le plus récent; docker image ls --format "{ {.Size}}" =》 Paramètre - format via Go Le modèle met en forme le contenu de sortie et ne renvoie que l'attribut size de l'
    image sur l'hôte Docker; docker image ls --format "{ {.Repository}}: { {.Tag}}: { {.Size}} "=" Renvoie tous les miroirs, mais n'affiche que les informations sur l'entrepôt, l'étiquette et la taille;

[CLI search Docker Hub] = "Revenir au miroir officiel [officiel] ou non officiel [automatisé]

  • docker search nginx = "mode simple, recherchez tous les entrepôts contenant une chaîne spécifique dans le champ" NAME = nginx ";
  • docker search nginx --filters "is-official = true" = "renvoie le contenu de nginx et n'affiche que l'image officielle;
  • docker search nginx --filters "is-automatic = true" = "renvoie le contenu de nginx et n'affiche que les images non officielles;

Remarque: [recherche docker] Par défaut, Docker ne renvoie que 25 lignes de résultats. Vous pouvez augmenter le nombre de lignes renvoyées par le paramètre --limit, jusqu'à 100 lignes;

Par exemple: docker search nginx --limit 60

[Opération de fichier Docker]

  • vi / vim index.html = "Modifier les informations du fichier index.html, vim devra peut-être être installé, Linux utilise par défaut vi;
  • docker cp index.html 41c15dlacff0: // usr / share / nginx / html =》 Copiez le fichier index.html dans le conteneur du docker, suivi de l'ID du conteneur: chemin de stockage;
  • docker rm nginx =》 Supprimez le fichier image, qui peut être suivi du nom de l'image ou de l'ID de l'image;
  • docker rm -f xxx =》 Le paramètre -f est supprimé de force sans invite;
  • docker rm -rf xxx =》 Supprimer tous les fichiers du dossier et de ses sous-dossiers, le paramètre -r supprime récursivement vers le bas;
  • docker mv = "déplacer ou renommer;
  • docker mv Dockerfile ../chait/ =》 Déplacez le Dockerfile vers ../chait/;
  • docker mv Dockerfile docfile = "Renommer en docfile;
  • docker commit -m'xxx '41c15dlacff0 newimagename = "Soumettez le fichier, le paramètre -m nom de fichier, suivi de l'ID de l'image d'origine, le nouveau nom de l'image;

[Opération de fichier Linux]

  • ls =》 Afficher tous les fichiers sous ce chemin;
  • mkdir xxx =》 Ajouter un nouveau dossier;
  • vi / vim xxx = "Editez le fichier;
  • rm -f xxx =》 Supprimer les fichiers, le paramètre -f est forcé de supprimer;
  • rm -rf xxx = "supprimer le répertoire et tous les sous-répertoires et fichiers, le paramètre -r récursivement vers le bas, -f force les suppressions;
  • cat xxx =》 Afficher le contenu du fichier;
  • : wq =》 Quitter et enregistrer le contenu édité;
  • sudo apt install lrzsz = "installer l'outil de téléchargement de fichier lrzsz;
  • rz = "Téléchargement de fichier, basé sur lrzsz;

【Afficher le numéro de port】

  • su root = "Changer d'utilisateur root;
  • lsof -i: port = "informations de port de sortie;
  • netstat -aptn = "Afficher tous les numéros de port ouverts;
  • netstat -nupl = "Afficher tous les numéros de port en utilisant le protocole udp;
  • netstat -ntpl = "Afficher tous les numéros de port en utilisant le protocole tcp;

[Commande de redémarrage Linux]
    1. redémarrer 
    2. shutdown -r redémarrer maintenant immédiatement
    3. shutdown -r 10 redémarrer automatiquement après 10 minutes
    4. shutdown -r 20:35 redémarrer à 20:35

    Si le redémarrage est défini via la commande shutdown, vous pouvez utiliser la commande shutdown -c pour annuler le redémarrage;

[Commande d'arrêt Linux]
    1. halt s'arrête immédiatement (généralement, ajoutez -p pour couper l'alimentation)
    2. poweroff s'arrête immédiatement 
    3. shutdown -h s'arrête maintenant immédiatement
    4. shutdown -h 10 s'arrête automatiquement après 10 minutes 

    Si l'arrêt est défini par la commande shutdown, vous pouvez utiliser la commande shutdown -c pour annuler l'arrêt;

[Nettoyage rapide (violence)]

  • rm $ (docker image ls -a) -f = "Supprimer toutes les images d'image sur l'hôte docker, le paramètre -f est forcé de supprimer
  • docker container rm $ (docker container ls -aq) =》 Supprimer tous les conteneurs sur l'hôte docker (supprimer l'ID du conteneur)

Manière élégante: arrêtez puis rm =》 pause d'abord, supprimez;

[Redémarrer le service de doker]

  • systemctl start docker = "Démarrer le service docker;
  • sudo systemctl daemon-reload = "Redémarrez le démon démon;
  • systemctl restart docker = "Redémarrez le service docker;
  • sudo service docker restart = "Redémarrez le service docker;
  • service docker stop = "Ferme le service docker;
  • systemctl stop docker = "Arrêtez le service docker;

[Jeu de commandes de mise en miroir]

  • docker image --help =》 Afficher toutes les commandes de gestion de l'image


Qu'est-ce qu'un conteneur Docker (conteneur)?

  • Un conteneur est une instance en cours d'exécution d'une image, et une image peut créer plusieurs conteneurs;
  • La différence entre un conteneur et une machine virtuelle: le conteneur démarre plus rapidement et est plus léger. Par rapport à une machine virtuelle fonctionnant sur un système d'exploitation complet, le conteneur partage le système d'exploitation / noyau de l'hôte sur lequel il se trouve.

[La différence entre la mise en miroir et le conteneur]

  • L'état est différent, l'image est une structure au moment de la construction et le conteneur est une structure au moment de l'exécution;
  • L'image est en lecture seule et ne peut pas être écrite, et le conteneur peut être lu et écrit;

[Relation entre le miroir et le conteneur]

  • Une image peut créer plusieurs conteneurs, relation 1: n un-à-plusieurs;
  • L'intention initiale du conteneur est d'être rapide et petit, de sorte que l'image est généralement relativement petite. Les commandes [docker container run] et [docker service create] = "démarrent un ou plusieurs conteneurs à partir d'une certaine image. Une fois que le conteneur est démarré à partir du miroir, la relation entre les deux devient mutuellement dépendante et le miroir ne peut pas être supprimé tant que tous les conteneurs démarrés sur le miroir ne sont pas arrêtés. Tenter de supprimer une image sans arrêter ni détruire le conteneur qui l'utilise provoquera une erreur;

L'image miroir est généralement petite

Le but du conteneur est d'exécuter une application ou un service, ce qui signifie que l'image du conteneur doit contenir le système d'exploitation et les fichiers d'application nécessaires à l'exécution de l'application / du service.

Cependant, le conteneur recherche la vitesse et la compacité, ce qui signifie que lors de la construction d'une image, il est généralement nécessaire de découper les parties inutiles et de maintenir le petit volume.

Par exemple, une image Docker ne contient généralement pas 6 shells différents que les lecteurs peuvent choisir - il n'y a généralement qu'un shell simplifié dans une image Docker, voire pas de shell.

 

L'image ne contient pas encore le noyau - les conteneurs sont le noyau de l'hôte Docker partagé. On dit parfois que le conteneur ne contient que le système d'exploitation nécessaire (généralement uniquement les fichiers du système d'exploitation et les objets du système de fichiers). Conseil: le conteneur Hyper-V s'exécute sur une machine virtuelle légère dédiée tout en utilisant le noyau du système d'exploitation à l'intérieur de la machine virtuelle.

 

L'image officielle de Docker, Alpine Linux, ne fait qu'environ 4 Mo, ce qui peut être considéré comme un exemple typique de la compacité de l'image Docker.

Cependant, l'état le plus courant de l'image est comme l'image officielle Ubuntu Docker, qui fait environ 110 Mo. La plupart du contenu inutile a été coupé dans ces images miroir.

L'image Windows est plus grande que l'image Linux, ce qui est lié au principe de fonctionnement du système d'exploitation Windows. Par exemple, la dernière image Microsoft .NET non compressée (microsoft / dotnet: dernière) dépasse 1,7 Go.

Après avoir extrait et décompressé l'image de Windows Server 2016 Nano Server (microsoft / nanoserver: dernier), son volume est légèrement supérieur à 1 Go.

 

[Conteneur (conteneur) commandes couramment utilisées]

  • docker container run <image> <app> = "Spécifie l'image requise pour le démarrage et l'application à exécuter;
  • docker container run -it ubuntu / bin / bash = "Démarrez le conteneur ubuntu et exécutez Bash Shell comme son application;
  • docker container run -it microsoft- / powershell: nanoserver pwsh.exe = "Démarrez le conteneur nanoserver et exécutez PowerShell en tant qu'application;
  • La commande de conteneur docker run -it ubuntu / bin / bash = "démarrera un conteneur Ubuntu au premier plan et exécutera le shell Bash;

[Ctrl + PQ] rompra le lien entre le Shell et le terminal de conteneurs, et maintiendra le conteneur en marche (UP) en arrière-plan après la sortie.

Le paramètre -it peut connecter le terminal actuel au terminal shell du conteneur. Le conteneur se termine avec la sortie de l'application qui y est exécutée. Le conteneur Linux se terminera après la fermeture de Bash Shell et le conteneur Windows se fermera une fois le processus PowerShell terminé. La méthode de vérification consiste à démarrer un nouveau conteneur et à exécuter la commande sleep pour dormir pendant 10 s, le conteneur démarrera, puis exécutera la commande sleep, et quittera après 10 s =》 conteneur docker run alpine: last sleep 10

  • docker container ls = "Liste tous les conteneurs dans l'état en cours d'exécution (UP). Si vous utilisez l'indicateur -a, vous pouvez également voir le conteneur dans l'état Exited.
  • La commande docker container exec -it <container-name ou container-id> bash = "lancera un processus Bash Shell à l'intérieur du conteneur et se connectera au Shell (l'image utilisée pour créer le conteneur doit inclure le shell Bash. Le shell hôte est très utile lors de la connexion à un terminal conteneur en cours d'exécution);
  • docker container stop <container-name or container-id> = "Arrêtez le conteneur en cours d'exécution et définissez le statut sur Exited (10s stop);
  • docker container start <container-name or container-id> = "Redémarrez le conteneur dans l'état Exited;
  • docker container stop <container-name or container-id> = "Supprimer le conteneur arrêté;
  • docker container inspect <container-name or container-id> = "Afficher les détails de configuration hiérarchique et les informations d'exécution du conteneur; 

[Ensemble de commandes de conteneur]

  • conteneur docker --help =》 Afficher toutes les commandes de gestion du conteneur

[Vérifier le démon Docker (démon)]

Si un code d'erreur est inclus dans la partie serveur, cela signifie que le démon Docker n'est probablement pas en cours d'exécution ou que l'utilisateur actuel n'a aucune autorisation d'accès;

[Résoudre le problème des accès non autorisés sous Linux]

  1. Confirmez si l'utilisateur actuel appartient au groupe local Docker UNIX, sinon ajoutez-le via [usermod -aG docker <user>], déconnectez-vous et reconnectez-vous à Shell, et la modification prendra effet;
  2. L'utilisateur appartient au groupe d'utilisateurs docker, ce qui peut être dû au fait que le démon Docker ne s'exécute pas.Selon le système d'exploitation de l'hôte Docker, sélectionnez la commande correspondante suivante pour vérifier l'état du démon;
//使用 Systemd 在 Linux 系统中执行该命令
$ service docker status
docker start/running, process 29393

//使用 Systemd 在Linux 系统中执行该命令
$ systemctl is-active docker
active

//在Windows Server 2016的 PowerShell 窗口中运行该命令
> Get-Service docker

Status Name DisplayName
------ ---- -----------
Running Docker docker

[Manuel d'instructions Docker]

  • docker --help = "Afficher toutes les commandes de gestion dans le menu fixe;
  • docker --info = "Afficher les informations du docker;

  •  Commandes de gestion Commandes de gestion:

Je suppose que tu aimes

Origine blog.csdn.net/ChaITSimpleLove/article/details/105211146
conseillé
Classement