Table des matières
1. Docker
1. Introduction
2 . Avantages de Docker
3. Comparaison entre Docker et les machines virtuelles
2. Installation de Docker
3 . Fonctionnement du conteneur
Démarrer :
stop conteneur
Copier les fichiers dans le conteneur
Le fichier Docker est généralement divisé en quatre parties : informations de base sur l'image, informations de maintenance, instructions d'utilisation de l'image et instructions d'opération de démarrage du conteneur
Format :
MAINTAINER : Informations de maintenance
RUN : Commande à exécuter lors de la construction de l'image
          LABEL <key>=<value> <key>=<value> ...Exemple :
    ENV MY_SERVICE_PORT=80 UDP_PORT=90
                                        using using using       using using           use using ' 's ' 's out through out en utilisant off ‐ ‐ ‐‐ ‐‐ et ​ to VOLUME [<path> ;]
USER user USER user:group USER uid
5. Opérations courantes de NameSpace
Définir le quota CPU
Attendez que le programme soit tué par le MOO, dmesg peut voir les informations sur le kill
1. Concept :
$ yum install bride-Utils
système Ubuntu :
3 Simulez le fonctionnement du pont réseau Docker
Create --net=none nginx.
Créer un espace de noms réseau
Créer un lien d'espace de noms réseau
Vérifiez le périphérique de pont actuellement créé
Créer une paire Veth
Effectuer une configuration réseau
Configurer le réseau B
nginx peut accéder à
Configurez nat pour que Windows puisse également accéder à
Supprimer après utilisation Préciser les règles nat
Maison Opération et maintenance Docker La maîtrise la plus systématique de la technologie de base Docker (partage de synthèse)

La maîtrise la plus systématique de la technologie de base Docker (partage de synthèse)

Feb 04, 2022 am 07:00 AM
docker

Cet article vous apporte quelques questions connexes sur le fonctionnement des conteneurs de la technologie de base Docker, ainsi qu'une explication détaillée de Dockerfile, etc. J'espère qu'il vous sera utile.

La maîtrise la plus systématique de la technologie de base Docker (partage de synthèse)

1. Docker

1. Introduction

  • Basé sur des technologies telles que Cgroup, Namespace et Union FS du noyau Linux, les processus sont encapsulés et isolés. Il s'agit d'une technologie virtuelle au niveau du système d'exploitation. Étant donné que le processus isolé est indépendant de l'hôte et que les autres processus isolés sont donc appelés conteneurs
  • L'implémentation initiale était basée sur LXC à partir de la version 0.7, LXC a été supprimé et le Libcontainer auto-développé a été utilisé à la place. a évolué pour utiliser runC et Containerd
  • Docker Sur la base des conteneurs, une encapsulation plus poussée a été réalisée, depuis les systèmes de fichiers, l'interconnexion réseau jusqu'à l'isolation des processus, etc., ce qui simplifie grandement la création et la maintenance des conteneurs, rendant la technologie Docker plus légère et plus rapide que la technologie des machines virtuelles

2 . Avantages de Docker

  • Utilisation plus efficace des ressources système
  • Temps de démarrage plus rapide
  • Environnement d'exécution cohérent
  • Livraison et déploiement continus
  • Migration plus facile
  • Maintenance et extension plus faciles
.

3. Comparaison entre Docker et les machines virtuelles

2. Installation de Docker

Installation de l'article de référence : Installer Docker Engine sur Ubuntu | Documentation Docker

3 . Fonctionnement du conteneur

  • Démarrer :

docker run:

-it interaction

-d background run

-p mappage des ports

                                                                                                                                                                                  -v disk mount

  • Démarrez le conteneur

docker start

  • stop conteneur

docker stop

  • Afficher le processus du conteneur

docker ps

  • Afficher les détails du conteneur

docker inspect

  • Copier les fichiers dans le conteneur

docker cp file1

  • docker quitte le conteneur, et Ne fermez pas le conteneur : ctrl+q+p

  • docker quitte le conteneur, mais ferme le conteneur : exit

  • Interroger toutes les images Docker

  • docker images

  • Entrepôt miroir Docker

  • Hub Docker : https://hub.docker.com

Créer un entrepôt miroir privé : docker run -d -p 5000 : 5000 registre

Quatre Dockerfile détaillé. explication

Le fichier Docker est généralement divisé en quatre parties : informations de base sur l'image, informations de maintenance, instructions d'utilisation de l'image et instructions d'opération de démarrage du conteneur

    Commandes communes
FROM : Spécifiez l'image de base, doit être la première commande

Format :

    DE

           DE :

          DE @

Exemple :

         DEPUIS ubuntu

MAINTAINER : Informations de maintenance

format :

                                                MAINTAINER

Exemple

MAINTAINER Ribbon

RUN : Commande à exécuter lors de la construction de l'image

Format :

Exécution du shell : RUN

exécution exec : RUN ["executable", "param1", "param2"]

Exemple :

RUN apk update

RUN ["/etc/execfile", "arg1", "arg2"]

RUN apt-get update && apt-get install Ces deux commandes sont toujours connectées avec &&, sinon la couche de construction apt-get update sera sera mis en cache. Cela entraînera l'échec de l'installation du nouveau package

AJOUTER : ajoutez des fichiers locaux au conteneur, tar et d'autres types seront automatiquement décompressés et les ressources réseau seront accessibles, similaire à wget

Format :

AJOUTER ... Multi -Stage dans Dockerfile (Construction multi-étapes) -SparkDev -Blog Garden

Format :

Copie & LT & GT ; & GT; : Appelé après la construction du conteneur, c'est-à-dire appelé uniquement au démarrage du conteneur :

CMD ["executable", "param1", "param2"] (fichier exécutable, priorité)

CMD [" param1", "Param2"] (définition du point d'entrée, appelez directement Entrypoint pour ajouter des paramètres) Commande CMD Param1 Param2 (exécution de la commande interne du shell)

Exemple :

CMD ["EthTool", "-Help"]

CMD Echo "1111"

ENTRTPOINT : Configurez le conteneur pour le rendre exécutable

.

Format :

ENTRYPOINT ["exécutable", "param1", "param2"] (fichier exécutable, priorité) Commande ENTRYPOINT param1 param2 (commande interne du shell)

Exemple :

ENTRYPOINT /httpserver

                      CMD [ - c]

LABAL : Utilisé pour ajouter des données source à l'image

Format :

          LABEL = = ...Exemple :

         LABEL multi.label1="value1" multi.label2="value2" other="value3"


ENV : Définir les variables d'environnement

Format :

      ENV ;value>

Exemple :

    ENV MY_SERVICE_PORT=80 UDP_PORT=90

EXPOSE : Spécifiez le port pour l'interaction externe

Format :

    EXPOSE < port> [

Exemple :

                                        using using using       using using           use using ' 's ' 's out through out en utilisant off ‐ ‐ ‐‐ ‐‐ et ​ to VOLUME [

Exemple :

VOLUME [" /data ", "/usr1/jenkins"]

USER : spécifiez le nom d'utilisateur ou l'UID lors de l'exécution du conteneur, et l'exécution ultérieure utilisera également l'utilisateur spécifié.

Format:

USER user USER user:group USER uid

USER uid:gid

USER user:gid

USER uid:group

Exemple :

USER www

ARG : utilisé pour spécifier à quoi passer la construction s'exécute Variables lorsque

Format :

ARG [=]

Exemple : ARG build_user=ribbon

5. Opérations courantes de NameSpace

  • Afficher l'espace de noms du système actuel :

  • lsns -t

Afficher l'espace de noms d'un processus :

    ls -la /proc/

  • Afficher la commande en cours d'exécution d'un espace de noms

nsenter -t -n

6. : cgroups - Vous pouvez vous référer au bref livre Apprenons-en davantage sur cet article

Simulation des groupes C pour contrôler les ressources CPU

  • Grâce à la simulation, pour mieux vous familiariser avec l'effet des groupes C contrôlant les ressources, créez d'abord le dossier cpudemo

Exécutez top et vous pouvez voir que Busyloop utilise deux ressources CPU

Ajoutez le processus au groupe de configuration du processus cgroup

  • Définir le quota CPU

Vous pouvez voir que l'utilisation de 200 % des ressources CPU est réduit avec succès à 1%

Simuler des groupes de contrôle Le dépassement de la limite des ressources mémoire sera un kill du MOO

Créez un dossier memorydemo dans le répertoire /sys/fs/cgroup/memory

Exécutez la mémoire programme consommateur, utilisez watch pour interroger l'utilisation de la mémoire

La configuration du processus entre dans le groupe de configuration des groupes de contrôle

Définissez la taille maximale de la mémoire

  • Attendez que le programme soit tué par le MOO, dmesg peut voir les informations sur le kill

Remarque : Supprimez le dossier cgroup auto-créé. Vous devez utiliser cgroup-tools

7. Union FS

Les technologies utilisées par Docker sont. tous dérivés des technologies Linux et ne sont pas innovants, et l'innovation de Docker est le système de fichiers.

1. Concept :

  • Un système de fichiers qui monte différents répertoires sous le même système de fichiers virtuel
  • Prend en charge la définition des autorisations en lecture seule, en lecture et sans autorisation pour chaque répertoire membre
  • Superposition du système de fichiers, en lecture seule Le répertoire des autorisations peut être logiquement modifié. La modification ici est incrémentielle et n'affecte pas la partie en lecture seule. Habituellement, le but d'Union FS est de monter plusieurs disques dans le même répertoire. L'autre est de combiner la partie en lecture seule avec la partie en écriture.
  • 2. Illustration d'Union FS
Dans la conception de l'image Docker, la notion de calque est introduite, c'est-à-dire que chaque étape de l'opération de l'utilisateur pour créer l'image générera un calque, qui est un calque ajouté. . Mesurez rootfs (un répertoire), de sorte que les conteneurs où se trouvent l'application A et l'application B fassent référence conjointement à la même couche du système d'exploitation Ubuntu et à la même couche d'environnement Golang (en tant que couche en lecture seule), et que chacun ait sa propre couche d'application et accessible en écriture. couche. Lors du démarrage du conteneur, montez les couches pertinentes dans un répertoire via UnionFS en tant que système de fichiers racine du conteneur.

3. Pilote de stockage de conteneur

4. Simulez Union FS pour mieux comprendre l'effet


Étant donné que la version actuelle de Docker utilise le pilote de stockage overlayFS, nous utilisons overlay pour l'accrocher. Pour mener des expériences, overlayfs est implémenté via trois répertoires : le répertoire inférieur, le répertoire supérieur et le répertoire de travail. Il peut y avoir plusieurs répertoires inférieurs. Le répertoire de travail est le répertoire de base du travail. Après le montage, le contenu sera effacé et utilisé. . Pendant le processus, le contenu est invisible pour l'utilisateur. Enfin, la vue unifiée présentée à l'utilisateur une fois le montage conjoint terminé est appelée répertoire fusionné.

Exécutez la commande suivante :

mkdir upper lower merged work
echo "lower" > lower/in_lower.txt
echo "from lower" > lower/in_both.txt
echo "from upper" > upper/in_both.txt
echo "upper" > upper/in_upper.txt
path=$(pwd)
mount -t overlay overlay -o lowerdir=${path}/lower,upperdir=${path}/upper,workdir=${path}/work ${path}/merged
Copier après la connexion

Vous pouvez voir l'effet de l'utilisation du montage du fichier du pilote de stockage par superposition. Une fois l'expérience terminée, pour restaurer l'environnement, vous devez d'abord démonter le répertoire fusionné, puis supprimer les quatre répertoires. Si vous supprimez d'abord les autres, rm: ne peut pas supprimer 'merged/' : un périphérique ou une ressource occupé peut apparaître. ce qui entraîne la suppression du répertoire fusionné. Euh 8. Réseau Docker

1. Outils d'installation

Système Centos :

$ yum install bride-Utils

système Ubuntu :

$ APT-GET Installer Bridge-Utils

2.

Le mode réseau intégré de Query Docker

  • docker run sélectionne le mode réseau à exécuter

1) Mode hôte : utilisez --net=host pour spécifier. Partagez un ensemble de réseaux avec l'hôte

2) Mode Aucun : utilisez --net=none pour spécifier. La configuration réseau doit être configurée par vous-même

3) Mode pont : utilisez --net=bridge pour spécifier le paramètre par défaut.

pont de diagramme logique de réseau Docker et NAT

4) Mode conteneur : utilisez --net=container:NAME_or_ID pour spécifier. Utilisez la configuration réseau d'autres conteneurs

Le diagramme du mode réseau est à peu près comme indiqué ci-dessous

3 Simulez le fonctionnement du pont réseau Docker

  • Create --net=none nginx.

  • Créer un espace de noms réseau

  • Créer un lien d'espace de noms réseau

  • Vérifiez le périphérique de pont actuellement créé

  • Créer une paire Veth

  • Effectuer une configuration réseau

  • Configurer le réseau B

Générer un périphérique réseau eth0 dans ngin x docker

vers eth0 Configurer l'ip passerelle

  • nginx peut accéder à

  • Configurez nat pour que Windows puisse également accéder à

  • Supprimer après utilisation Préciser les règles nat

Apprentissage recommandé : "Tutoriel vidéo Docker"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Dead Rails - Comment apprivoiser les loups
4 Il y a quelques semaines By DDD
Niveaux de force pour chaque ennemi et monstre de R.E.P.O.
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
<🎜>: Grow A Garden - Guide de mutation complet
2 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1660
14
Tutoriel PHP
1261
29
Tutoriel C#
1234
24
Comment sortir du conteneur par Docker Comment sortir du conteneur par Docker Apr 15, 2025 pm 12:15 PM

Quatre façons de quitter Docker Container: Utilisez Ctrl D dans le terminal de conteneur Entrez la commande d'exit dans le terminal de conteneur Utilisez Docker Stop & lt; contener_name & gt; Commande utilise docker kill & lt; contener_name & gt; commande dans le terminal hôte (sortie de force)

Comment copier des fichiers dans Docker à l'extérieur Comment copier des fichiers dans Docker à l'extérieur Apr 15, 2025 pm 12:12 PM

Méthodes de copie de fichiers en hôtes externes dans Docker: Utilisez la commande docker cp: exécuter docker cp [options] & lt; Container Path & gt; & lt; Host Path & gt;. Utilisation de volumes de données: créez un répertoire sur l'hôte et utilisez le paramètre -v pour monter le répertoire dans le conteneur lors de la création du conteneur pour obtenir la synchronisation de fichiers bidirectionnels.

Comment démarrer un conteneur par Docker Comment démarrer un conteneur par Docker Apr 15, 2025 pm 12:27 PM

Étapes de démarrage du conteneur Docker: Tirez l'image du conteneur: Exécutez "Docker Pull [Mirror Name]". Créer un conteneur: utilisez "Docker Create [Options] [Mirror Name] [Commandes et paramètres]". Démarrez le conteneur: exécutez "docker start [nom de conteneur ou id]". Vérifiez l'état du conteneur: vérifiez que le conteneur s'exécute avec "Docker PS".

Comment redémarrer Docker Comment redémarrer Docker Apr 15, 2025 pm 12:06 PM

Comment redémarrer le conteneur Docker: Obtenez l'ID de conteneur (Docker PS); Arrêtez le conteneur (docker stop & lt; contener_id & gt;); Démarrer le conteneur (docker start & lt; contener_id & gt;); Vérifiez que le redémarrage réussit (Docker PS). Autres méthodes: Docker Compose (redémarrage Docker-Compose) ou API Docker (voir Docker Documentation).

Comment vérifier le nom du conteneur Docker Comment vérifier le nom du conteneur Docker Apr 15, 2025 pm 12:21 PM

Vous pouvez interroger le nom du conteneur Docker en suivant les étapes: répertorier tous les conteneurs (Docker PS). Filtrez la liste des conteneurs (à l'aide de la commande grep). Obtient le nom du conteneur (situé dans la colonne "Noms").

Comment démarrer MySQL par Docker Comment démarrer MySQL par Docker Apr 15, 2025 pm 12:09 PM

Le processus de démarrage de MySQL dans Docker se compose des étapes suivantes: Tirez l'image MySQL pour créer et démarrer le conteneur, définir le mot de passe de l'utilisateur racine et mapper la connexion de vérification du port Créez la base de données et l'utilisateur accorde toutes les autorisations sur la base de données

Comment mettre à jour l'image de Docker Comment mettre à jour l'image de Docker Apr 15, 2025 pm 12:03 PM

Les étapes pour mettre à jour une image Docker sont les suivantes: Tirez la dernière étiquette d'image Nouvelle image Supprimer l'ancienne image pour une balise spécifique (facultative) Redémarrez le conteneur (si nécessaire)

Comment créer des conteneurs pour Docker Comment créer des conteneurs pour Docker Apr 15, 2025 pm 12:18 PM

Créer un conteneur dans Docker: 1. Tirez l'image: docker pull [Nom du miroir] 2. Créer un conteneur: docker run [Options] [Nom du miroir] [Commande] 3. Démarrez le conteneur: docker start [Nom du conteneur]

See all articles