Ceci est une suite de Introduction à Linux Container / Docker (Part 1).
Docker
Moteur de conteneur OSS fourni par Docker. (Il existe également une version payante)
Comme mentionné ci-dessus, LXC n'est pas très pratique car il ne possède que les fonctions minimales </ u> ** ⇒ Docker ** est une extension de LXC qui est enveloppée pour le rendre plus facile à manipuler.
Docker est un outil qui englobe la technologie LXC mentionnée ci-dessus et la rend plus facile à utiliser. Les fonctions suivantes sont ajoutées.
--Portabilité, fonction de partage Docker a la capacité d'archiver des conteneurs dans des fichiers tar et de les envoyer à d'autres machines physiques ou de les partager via le registre de conteneurs. En conséquence, le conteneur créé peut être détourné vers une autre machine.
Focus sur l'application LXC a été créé à l'origine du point de vue d'une «machine virtuelle légère», mais Docker permet de rendre LXC plus léger et plus facile, ce qui facilite la conteneurisation de chaque application et de chaque processus.
IaC Les fichiers à créer dans le conteneur et les applications à installer peuvent être définis au format Dockerfile. Cela permet de définir le contenu du conteneur de manière IaC.
contrôle de version Les conteneurs créés avec Docker peuvent recevoir un numéro de version et peuvent être gérés avec Docker. En conséquence, la gestion des différences entre les versions et la restauration en cas de problème peuvent être réalisées.
Réutilisation des composants Docker crée une image de conteneur sous la forme d'ajout de fichiers et d'applications à une image de conteneur existante à l'aide d'un mécanisme appelé couches. En partageant les parties communes à plusieurs conteneurs, la capacité du disque et les coûts de gestion peuvent être réduits.
écosystème Docker est le moteur de conteneur le plus important et est entouré d'un vaste écosystème. Les exemples incluent les logiciels et services associés suivants.
--Docker Hub… Un site qui partage des conteneurs Docker sur Internet --Docker-Compose… Logiciel pour lancer plusieurs conteneurs en coopération --Kubernetes… Logiciel qui vous permet d'exploiter les conteneurs de manière plus flexible en formant un cluster avec un grand nombre d'hôtes Linux (décrit plus loin).
Dans le cas de la VM, l'image est un modèle et l'instance est la VM en cours d'exécution.
En interne, l'instance fait uniquement référence à l'image, donc la copie n'a pas lieu au démarrage.
En spécifiant le nom de l'image avec la commande Docker et run
, le conteneur Linux est réellement créé.
Dans Docker, de nouvelles images sont créées en ajoutant des fichiers aux images existantes et en exécutant des commandes. Pour les principaux OSS, l'image officielle du conteneur est publiée sur un site Internet appelé Docker Hub. Lors de son utilisation réelle, il arrive souvent qu'une image personnalisée soit créée et utilisée en ajoutant des valeurs de réglage à l'image officielle.
Dockerfile
La définition pour créer une image (quel fichier ajouter, quelle commande exécuter) est décrite dans le texte Dockerfile.
La création d'une image de conteneur à l'aide d'un Dockerfile s'appelle une build
.
Comme indiqué dans l'exemple ci-dessous, il est essentiellement créé en ajoutant un fichier ou en exécutant une commande sur une image de conteneur existante extraite du hub Docker ou similaire. Il n'est pas impossible de fabriquer un conteneur à partir de zéro, mais c'est beaucoup de travail, mais il y a peu d'avantages, il vaut donc mieux s'arrêter.
Créez un conteneur pour exécuter un programme Python appelé app.py comme suit. (Le package etc. qui est inclus est juste écrit de manière appropriée à titre d'exemple, il n'y a pas de signification particulière)
Dockerfile
#Créé à partir de l'image officielle Python
FROM python:3.7.6-stretch
#Installer le package avec pip
RUN pip install pip --upgrade && \
pip install numpy scipy
#Installer le package avec apt
RUN apt-get update -y && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
sshpass
#Créer un annuaire
WORKDIR /work
#Placez le programme
COPY app.py /work
#Spécifiez la première commande à exécuter lors du démarrage d'une instance de conteneur
ENTRYPOINT python /work/app.py
Après avoir écrit et enregistré ceci, vous pouvez construire le conteneur en le chargeant avec la commande docker build
.
Un mécanisme pour partager l'image de conteneur créée. De nombreuses images de conteneur OSS et images de conteneur créées personnellement sont publiées sur Docker Hub sur Internet. (!) Veuillez noter que vous ne savez pas ce qu'il y a à l'intérieur de l'image publiée par l'individu.
Lorsque vous travaillez dans un environnement fermé, il est souhaitable de configurer un registre de conteneurs dans ce réseau.
Le téléchargement d'une image à partir du registre s'appelle «pull» et son téléchargement s'appelle «push».
Docker
** Image du conteneur **… Modèle de conteneur. Ajouter (modifier) des fichiers à une image existante Vous pouvez créer une image personnalisée.
** Instance de conteneur **… L'environnement d'exécution réel créé à partir de l'image du conteneur. En interne, il ne fait référence qu'à l'image, il est donc créé pour un moment. Je n'utilise pas beaucoup de stockage.
** Container Registry **… Un endroit pour stocker les images de conteneurs. C'est sur Internet et peut être configuré localement.
Recommended Posts