Galerie de cartes mentales Carte mentale du conteneur d'environnement virtuel Docker
Il s'agit d'une carte mentale sur Docker, un conteneur d'environnement virtuel qui peut regrouper l'environnement de développement, le code, les fichiers de configuration, etc. dans le conteneur, puis le publier et l'appliquer à n'importe quelle plate-forme. J'espère que cela t'aides!
Modifié à 2023-11-05 20:10:22Cent ans de solitude est le chef-d'œuvre de Gabriel Garcia Marquez. La lecture de ce livre commence par l'analyse des relations entre les personnages, qui se concentre sur la famille Buendía et raconte l'histoire de la prospérité et du déclin de la famille, de ses relations internes et de ses luttes politiques, de son métissage et de sa renaissance au cours d'une centaine d'années.
Cent ans de solitude est le chef-d'œuvre de Gabriel Garcia Marquez. La lecture de ce livre commence par l'analyse des relations entre les personnages, qui se concentre sur la famille Buendía et raconte l'histoire de la prospérité et du déclin de la famille, de ses relations internes et de ses luttes politiques, de son métissage et de sa renaissance au cours d'une centaine d'années.
La gestion de projet est le processus qui consiste à appliquer des connaissances, des compétences, des outils et des méthodologies spécialisés aux activités du projet afin que celui-ci puisse atteindre ou dépasser les exigences et les attentes fixées dans le cadre de ressources limitées. Ce diagramme fournit une vue d'ensemble des 8 composantes du processus de gestion de projet et peut être utilisé comme modèle générique.
Cent ans de solitude est le chef-d'œuvre de Gabriel Garcia Marquez. La lecture de ce livre commence par l'analyse des relations entre les personnages, qui se concentre sur la famille Buendía et raconte l'histoire de la prospérité et du déclin de la famille, de ses relations internes et de ses luttes politiques, de son métissage et de sa renaissance au cours d'une centaine d'années.
Cent ans de solitude est le chef-d'œuvre de Gabriel Garcia Marquez. La lecture de ce livre commence par l'analyse des relations entre les personnages, qui se concentre sur la famille Buendía et raconte l'histoire de la prospérité et du déclin de la famille, de ses relations internes et de ses luttes politiques, de son métissage et de sa renaissance au cours d'une centaine d'années.
La gestion de projet est le processus qui consiste à appliquer des connaissances, des compétences, des outils et des méthodologies spécialisés aux activités du projet afin que celui-ci puisse atteindre ou dépasser les exigences et les attentes fixées dans le cadre de ressources limitées. Ce diagramme fournit une vue d'ensemble des 8 composantes du processus de gestion de projet et peut être utilisé comme modèle générique.
docker
concept de base
Docker est un conteneur d'environnement virtuel qui peut regrouper l'environnement de développement, le code, les fichiers de configuration, etc. dans le conteneur, puis le publier et l'appliquer à n'importe quelle plate-forme. Un projet open source implémenté en langage go, conforme au protocole Apache2.0, et le code du projet est maintenu sur GitHub
avantage
Rapide : les performances d'exécution sont rapides et les opérations de gestion (démarrage, arrêt, démarrage, redémarrage, etc.) se déroulent toutes en secondes ou millisecondes.
Léger : le conteneur n'a pas son propre noyau et il n'y a pas de virtualisation matérielle. Les applications et les systèmes sont « conteneurisés » sans ajouter de systèmes d'exploitation supplémentaires.
Docker définit la norme d'image et la norme d'exécution du conteneur.
Open source, gratuit et peu coûteux
Inconvénients : tous les conteneurs partagent les ressources du noyau Linux, et si les ressources peuvent être utilisées au maximum, il y aura des failles de sécurité.
docker-ce : édition communautaire docker-ee : version commerciale
installation du menu fixe
Paquet de base
yum-utils wget net-tools nfs-utils lrzsz gcc gcc-c make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh -serveur socat ipvsadm conntrack
Paquet de dépendances
miam-utils : yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
device-mapper-persistent-data : Device Mapper est un mécanisme universel de mappage de périphériques dans le noyau Linux 2.6 qui prend en charge la gestion des volumes logiques. Il fournit une architecture de noyau hautement modulaire pour la mise en œuvre de pilotes de périphériques en mode bloc pour la gestion des ressources de stockage.
lvm2 : gestion des volumes logiques
Activer le transfert de paquets et modifier les paramètres du noyau
Le module br_netfilter est utilisé pour transférer le trafic vers la chaîne iptables. Le paramètre du noyau br_netfilter doit activer le transfert.
modprobe br_netfilter #Charger les modules dans le noyau
Configurable - Redémarrez la machine et chargez automatiquement le module
Créez un nouveau fichier rc.sysinit dans /etc/ chat /etc/rc.sysinit #!/bin/bash pour le fichier dans /etc/sysconfig/modules/*.modules ; [ -x $fichier ] && $fichier fait Créez un nouveau fichier dans le répertoire /etc/sysconfig/modules/ comme suit chat /etc/sysconfig/modules/br_netfilter.modules modprobe br_netfilter Ajouter des autorisations chmod 755 /etc/sysconfig/modules/br_netfilter.modules Le module sera également automatiquement chargé au redémarrage de la machine. [root@localhost ~]# lsmod |grep br_netfilter br_netfilter 22209 0 pont 136173 1 br_netfilter
#Écriture non interactive chat > /etc/sysctl.d/docker.conf <<EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 EOF
#Rendre les paramètres efficaces sysctl -p /etc/sysctl.d/docker.conf
Configuration de l'accélérateur d'images
/etc/docker/daemon.json
{ "registry-mirrors":["https://y8y6vosv.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn" ,"https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com"] }
La configuration prend effet
sudo systemctl démon-reload sudo systemctl redémarrer le docker
docker trois éléments
miroir
docker run --help #Afficher tous les paramètres d'options
Semblable à l'image ISO dans une machine virtuelle, il s'agit d'un modèle en lecture seule pour le moteur Docker qui contient un système de fichiers.
Identifiant unique : ID de l'image
Commandes de mise en miroir
images du docker Afficher la liste d'images locales
Docker rechercher le nom de l'image rechercher l'image
docker pull image name : extraire la dernière image docker pull image name : la balise extrait l'image de la version spécifiée
nom de l'image d'exécution du docker : exécutez l'image nom de l'image d'exécution du docker : balise
-a, --attach=[] Attacher à stdin, stdout ou stderr. -c, --cpu-shares=0 # Définir le poids d'utilisation du processeur –cidfile="" # Écrit l'identifiant du conteneur dans le fichier spécifié –cpuset="" # liaison CPU -d, --detach=false # Exécute le conteneur en arrière-plan –dns=[] # Définir le DNS –dns-search=[] # Définir la recherche de domaine DNS -e, --env=[] # Définir les variables d'environnement –entrypoint="" Écraser le point d'entrée par défaut de l'image #Écraser le point d'entrée par défaut de l'image –env-file=[] # Lire les valeurs des variables à partir du fichier spécifié –expose=[] # Spécifie le port du service externe -h, --hostname="" # Définit le nom d'hôte du conteneur -i, --interactive=false # Garder la sortie standard ouverte même si elle n'est pas connectée –link=[] # Ajouter un lien vers un autre conteneur –lxc-conf=[] # Ajouter des options lxc personnalisées --lxc-conf="lxc.cgroup.cpuset.cpus = 0,1" -m, --memory="" # Limite de mémoire –name="" # Définir le nom du conteneur –net="bridge" #Définir le mode réseau du conteneur ***** « pont » : crée une nouvelle pile réseau pour le conteneur sur le pont Docker ***** « aucun » : pas de mise en réseau pour ce conteneur ***** 'container:<name|id>' : réutilise une autre pile de réseau de conteneurs ***** « hôte » : utilise la pile réseau hôte à l'intérieur du conteneur. ***** Remarque : le mode hôte donne au conteneur un accès complet aux services du système local tels que D-bus et est donc considéré comme non sécurisé. -P, --publish-all=false # Mapper automatiquement le port pour les services externes fournis par le conteneur -p, --publish=[] # Spécifie le mappage de port ***** format : ip:hostPort:containerPort | ip::containerPort | ***** (utilisez le « port docker » pour voir le mappage réel) –privileged=false # Fournir plus d'autorisations au conteneur –rm=false # Suppression automatique si la sortie du conteneur est en conflit avec l'option -d –sig-proxy=true Proxifie les signaux reçus vers le processus (même en mode non-tty) SIGCHLD n'est pas mandaté. # Le proxy a reçu des signaux vers le processus (même en mode non-tty). SIGCHLD non mandaté -t, --tty=false # Allouer un pseudo-terminal -u, --user="" #Spécifiez l'uid ou le nom d'utilisateur pour exécuter le conteneur -v, --volume=[] Lier le montage d'un volume (par exemple, depuis l'hôte : -v /host:/container, depuis le docker : -v /container) # Monter le volume –volumes-from=[] # Monter les volumes à partir du conteneur spécifié- -w, --workdir="" #Spécifiez le répertoire de travail du conteneur
Tous les paramètres de l'exécution de Docker
docker save image name/image ID -o path/name Enregistrez l'image sous forme de fichier tar pour faciliter le transfert et le stockage docker load -i charge le fichier dans une image
docker tag image1:v1 image1:v2 Marquez l'image pour l'itération de version et la différenciation de l'image.
docker rmi -f nom de l'image/ID de l'image supprimer une image docker rmi -f nom de l'image/ID de l'image nom de l'image/ID de l'image nom de l'image/ID de l'image #Supprimer plusieurs images Les ID d'image ou les images peuvent être séparés par des espaces. docker rmi -f $(docker images -aq) #Supprimer toutes les images -a signifie tout afficher, -q signifie afficher uniquement l'ID docker image rm nom de l'image/ID de l'image supprimer de force l'image
récipient
Les conteneurs sont des instances d'application créées par des images. Le moteur Docker utilise des conteneurs pour exécuter et isoler chaque application. Chaque conteneur est isolé les uns des autres et ne s'affecte pas.
docker ps afficher la liste des conteneurs en cours d'exécution
docker ps -a Afficher tous les conteneurs - y compris ceux en cours d'exécution et arrêtés
docker run -it -d --name Alias à prendre Nom de l'image : Tag /bin/bash # -cela signifie un démarrage interactif avec le conteneur -d signifie que le conteneur peut être exécuté en arrière-plan (démon en cours d'exécution) --name est le nom donné au conteneur à exécuter /bin/bash chemin interactif
docker stop image name/image ID arrête le conteneur
docker start image name/image ID démarre le conteneur arrêté
docker exec -it nom de l'image/ID de l'image /bin/bash entrez le conteneur
docker rm -f nom de l'image/ID de l'image supprimer le conteneur
entrepôt
Introduction au port
Le développement et l'exploitation d'applications conteneurs Docker sont indissociables d'une gestion fiable des images. Bien que Docker fournisse officiellement des entrepôts d'images publics, il est également nécessaire de déployer le Registre dans notre environnement privé du point de vue de la sécurité et de l'efficacité. Harbor est un projet open source de gestion de registre Docker au niveau de l'entreprise par VMware. Il comprend des fonctions telles que la gestion des autorisations (RBAC), LDAP, l'audit des journaux, l'interface de gestion, l'auto-enregistrement, la réplication d'images et la prise en charge du chinois. Adresse du site officiel : https://github.com/goharbor/harbor
docker image privée entrepôt port
Certificat d'auto-signature pour Harbour
Installer le port
Site officiel du Docker Hub https://hub.docker.com/
fichier docker
Concept : Dockerfile est un fichier texte utilisé pour créer une image. Le contenu du texte contient les instructions et les instructions nécessaires à la création de l'image.
fichier docker
Processus de construction
Exécuter un conteneur à partir d'une image de base Exécuter une instruction pour apporter des modifications au conteneur Effectuez une opération similaire à docker commit pour soumettre un nouveau calque d'image Ensuite, exécutez un nouveau conteneur basé sur l'image que vous venez de soumettre Exécutez l'instruction suivante dans le fichier docker jusqu'à ce que toutes les instructions soient exécutées
Rédaction de normes
L'image de base FROM doit être téléchargeable
MAINTAINER spécifie les informations sur l'auteur de l'image
RUN spécifie la commande à exécuter pendant le processus de création d'image en cours (Shell, mode exécutable)
EXPOSE rappelle à l'utilisateur quel port le conteneur expose
CMD : Spécifiez le programme à exécuter par défaut pour le conteneur démarré. Une fois l'exécution du programme terminée, le conteneur se terminera également. Semblable à l'instruction RUN, elle est utilisée pour exécuter des programmes, mais ils s'exécutent à des moments différents : 1. CMD s'exécute lors de l'exécution de Docker. 2. RUN est exécuté lorsque Docker build crée l'image.
POINT D'ENTRÉE Semblable à l'instruction CMD, mais elle ne sera pas remplacée par les instructions spécifiées par les paramètres de ligne de commande de docker run, et ces paramètres de ligne de commande seront utilisés comme paramètres du programme spécifié par l'instruction ENTRYPOINT. Si vous devez re-spécifier ENTERYPOINT, veuillez utiliser l'option --entrypoint, qui écrasera le programme spécifié par la directive Entrypoint.
COPY # Copier la commande, copier des fichiers ou des répertoires du répertoire contextuel vers le chemin spécifié dans le conteneur.
L'instruction ADD # a le même format que COPY ADD inclut une fonction de décompression de type tar Si vous copiez simplement des fichiers, dockerfile recommande COPY.
VOLUME #Définir le volume de données anonymes. Si vous oubliez de monter le volume de données lors du démarrage du conteneur, il sera automatiquement monté sur le volume anonyme. 1. Évitez la perte de données importantes en raison du redémarrage du conteneur, ce qui est très fatal. 2. Empêchez le récipient de grossir.
WORKDIR #Spécifiez le répertoire de travail. Le répertoire de travail spécifié avec WORKDIR existera dans chaque couche de l'image construite. (Le répertoire de travail spécifié par WORKDIR doit être créé à l'avance)
ENV #Définir les variables d'environnement
USER # est utilisé pour spécifier l'utilisateur et le groupe d'utilisateurs pour exécuter les commandes suivantes. Il s'agit simplement de changer d'utilisateur pour exécuter les commandes suivantes (l'utilisateur et le groupe d'utilisateurs doivent déjà exister à l'avance).
ONBUILD #Utilisé pour retarder l'exécution des commandes de build
LABEL #Utilisé pour ajouter des métadonnées à l'image sous forme de paires clé-valeur
HEALTHCHECK # est utilisé pour spécifier un programme ou une instruction permettant de surveiller l'état d'exécution du service de conteneur Docker.
ARG Paramètres de construction, identiques à ENV. Mais la portée est différente. Les variables d'environnement définies par ARG ne sont valides que dans le Dockerfile, ce qui signifie qu'elles ne sont valides que pendant le processus de construction du docker. Cette variable d'environnement n'existe pas dans l'image construite.
Conteneur Docker
Gestion des données des conteneurs Docker
volume de données
concept
Un volume de données est un répertoire spécialement conçu qui peut contourner le système de fichiers Union (UFS) et donner accès à un ou plusieurs conteneurs. Le but de la conception du volume de données est de stocker les données de manière permanente. Il est totalement indépendant du cycle de vie du. conteneur, donc Docker ne supprimera pas son volume de données monté lorsque le conteneur est supprimé, et il n'y aura pas non plus de mécanisme de récupération de place similaire pour traiter le volume de données référencé par le conteneur. Le même volume de données ne peut prendre en charge l'accès que par plusieurs conteneurs.
Caractéristiques
1. Le volume de données est initialisé au démarrage du conteneur. Si l'image utilisée par le conteneur contient des données au point de montage, les données seront copiées sur le volume de données nouvellement initialisé. 2. Les volumes de données peuvent être partagés et réutilisés entre les conteneurs 3. Le contenu du volume de données peut être modifié directement 4. Les modifications apportées au volume de données ne mettront pas à jour le miroir d'image 5. Le volume existera toujours, même si le conteneur montant le volume de données a été supprimé
utiliser
Ajouter un volume de données au conteneur
Ajouter un volume de données au conteneur docker run -v /datavolume:/data -it centos /bin/bash
Ajouter des autorisations d'accès aux volumes de données docker run --name volume1 -v ~/datavolume1:/data:ro -itd centos /bin/bash
Utilisez dockerfile pour créer une image contenant des volumes de données
DE centos VOLUME ["/datavolume3","/datavolume6"] CMD/bin/bash Utilisez ce qui suit pour créer l'image docker build -t="volume" . Démarrer le conteneur docker run --name volume-dubble -it volume Vous verrez qu'il y a deux répertoires sous ce conteneur, /datavolume3 et /datavolume6
Conteneur de volumes de données Docker
concept
Le conteneur nommé monte le volume de données et d'autres conteneurs réalisent le partage de données en montant ce conteneur. Le conteneur qui monte le volume de données est appelé conteneur de volume de données. Comment monter un docker de conteneur de volumes de données run --volumes-from [nom du conteneur]
Sauvegarde et restauration des volumes de données Docker
Sauvegarde et restauration des volumes de données Docker
Méthode de sauvegarde des données : docker run --volumes-from [nom du conteneur] -v $(pwd):/backup centos tar czvf /backup/backup.tar [volume de données du conteneur]
Méthode de restauration des données : docker run --volumes-from [nom du conteneur] -v $(pwd):/backup centos tar xzvf /backup/backup.tar.gz [volume de données du conteneur]
interconnexion des conteneurs Docker
Bases du réseau des conteneurs Docker
docker0 : lors de l'installation de docker, un pont virtuel pour docker0 sera généré. Chaque fois qu'un conteneur Docker est exécuté, une paire de périphériques Veth est générée. Cette interface Veth a une interface dans le conteneur et une interface sur la machine physique.
Installer les outils de gestion de pont : miam install bridge-utils -y
Interconnexion des conteneurs Docker
docker run --name test2 -itd --link=test1:webtest inter-image /bin/bash Connectez-vous au conteneur test2 et envoyez une requête ping à l'alias Webtest du conteneur test1. Il peut être pingé même si l'adresse IP du conteneur test1 a changé.
Mode réseau de conteneur Docker
Docker dispose des 4 modes réseau suivants
aucun mode Cela signifie que le conteneur créé n'a pas d'adresse réseau, seulement l'adresse locale locale.
mode conteneur #Partagez le réseau avec le conteneur aucun existant
mode pont Lorsque le pont est sélectionné par défaut, une adresse sera obtenue via DHCP après le démarrage du conteneur.
mode hôte Le mode hôte du réseau Docker fait référence à un réseau qui partage la machine hôte
quota de ressources Docker
Docker contrôle le processeur
-c --cpu-share
La spécification de la valeur de partage de CPU utilisée par le conteneur lors de la création du conteneur n'est qu'une valeur pondérée flexible.
--cpuset-cpus #core contrôle de base
--cpuset-mems #
Valable pour les serveurs avec plusieurs nœuds de mémoire
Logiciel de tests de résistance : Stress
mémoire de contrôle Docker
-m , --mem=""
contrôle docker IO
--device-write-bps value #Limiter la vitesse d'écriture de cet appareil
--device-read-bps value # Limiter la vitesse de lecture de cet appareil
Docker libère automatiquement les ressources
--rm value #Une fois l'exécution du conteneur terminée, le conteneur sera automatiquement supprimé après l'heure spécifiée.
Comment définir le titre d’Evernote ?