[Débutant] Qu'est-ce que Docker en premier lieu? Explication facile à comprendre des bases!

introduction

Il est un peu tard, mais j'ai appris sur Docker à partir des bases, je vais donc le résumer. Les options détaillées de toutes les commandes ne sont pas résumées. Le but de cet article est de connaître un outil appelé Docker, qui est rudimentaire (mais important).

Qu'est-ce que Docker en premier lieu?

Docker est un "outil de construction d'environnement virtuel".

Qu'est-ce qu'un environnement virtuel?

Un environnement virtuel est un espace temporaire (un lieu pour réaliser quelque chose) qui est créé artificiellement dans un ordinateur. Si vous mâchez un peu plus, c'est un environnement où vous pouvez déplacer ce dont vous avez besoin à l'origine physiquement comme s'il était virtuel.

スクリーンショット 2020-11-15 18.17.42.png Voir: Qu'est-ce qu'une machine virtuelle? Expliquez les connaissances de base et les fonctionnalités de la «virtualisation» et de la «machine virtuelle» que vous entendez souvent

Par exemple, dans un environnement Windows, un environnement de système d'exploitation Linux créé virtuellement ou un autre environnement de système d'exploitation Windows peut être préparé comme exemple d'environnement virtuel. En général, le système d'exploitation qui forme la base de la création d'un environnement virtuel est appelé «système d'exploitation hôte», et le système d'exploitation de l'environnement virtuel est appelé «système d'exploitation invité». En créant un environnement virtuel, il n'est plus nécessaire de préparer physiquement un ordinateur personnel pour Linux et un ordinateur personnel pour Windows, et il devient possible de gérer de manière centralisée avec un seul matériel. Il présente également l'avantage de pouvoir ajuster de manière flexible la capacité de la mémoire et du disque dur. Construire un environnement virtuel économise également du matériel matériel.

Type de machine virtuelle

Il existe plusieurs types de machines virtuelles. Je vais expliquer brièvement les avantages et les inconvénients de chacun.

① Type d'hôte ② Type de visière hyper ③ Type de conteneur

image.png Voir: Qu'est-ce qu'un environnement virtuel? Explication des avantages et des inconvénients, logiciel typique "VMware"

① Type d'hôte

Ce type installe un système d'exploitation hôte sur un ordinateur personnel ou un serveur, et installe et crée un logiciel de création d'environnement virtuel sur ce système d'exploitation. Le système d'exploitation invité est aligné sur le système d'exploitation hôte.

-Avantage: vous pouvez l'utiliser immédiatement en l'installant sur un serveur existant, et vous pouvez le démarrer facilement. -Inconvénient: le système d'exploitation hôte doit être démarré. Lorsque le matériel est démarré, le démarrage du système d'exploitation hôte peut prendre un certain temps.

② Type de visière hyper

Le type d'hyperviseur est un type qui construit la virtualisation en installant directement un logiciel de virtualisation appelé «hyperviseur» sur un seul matériel. Puisqu'il n'est pas nécessaire de démarrer le système d'exploitation hôte, il peut être démarré plus rapidement que le type de système d'exploitation hôte.

-Avantage: comme il n'y a pas de système d'exploitation hôte, la plupart des ressources peuvent être allouées à l'environnement virtuel. -Inconvénient: vous devez acheter du nouveau matériel sans réutiliser les PC et serveurs existants. Lors de la construction, vous devez également faire attention à l'aspect coût.

③ Type de conteneur

Un logiciel de virtualisation appelé «moteur de conteneur» est installé sur le système d'exploitation hôte, un environnement appelé conteneur y est créé et les applications sont exécutées. Les conteneurs n'ont pas le concept de système d'exploitation invité. Il est reconnu comme un processus par le système d'exploitation hôte. Par conséquent, aucune ressource supplémentaire n'est requise et un environnement léger peut être fourni. Lorsque vous l'utiliserez réellement, vous pourrez démarrer l'application dans un court laps de temps.

-Avantages: bonne efficacité des ressources et excellente performance des coûts. ・ Inconvénient: il y a peu de fournisseurs qui peuvent être construits car il s'agit d'une nouvelle technologie. Il manque des outils de gestion pratiques.

Qu'est-ce que Docker encore? ??

Comme mentionné ci-dessus, Docker est un "outil de construction d'environnement virtuel". Parmi eux, vous pouvez créer un environnement virtuel appelé "** container **" et exécuter des applications, des middlewares, des OS, etc. dans ce conteneur. L'un des avantages du conteneur est qu'il est extrêmement léger et peut être démarré et arrêté rapidement. Voyons comment fonctionne Docker.

Comment fonctionne Docker

Ici, nous approfondirons notre compréhension du fonctionnement de Docker, en fonction de termes que les débutants de Docker doivent garder à l'esprit.

・ Moteur Docker ・ Conteneur Docker ・ Image Docker

Qu'est-ce que le moteur Docker?

Le moteur Docker peut être compris comme «Docker lui-même». Il s'agit de la partie centrale de Docker qui crée des images Docker et démarre des conteneurs. Ce moteur Docker peut être facilement utilisé en installant Docker sur le système d'exploitation hôte (Windows, Mac, Linux). Après l'installation, il semble que le moteur Docker s'exécute sur le système d'exploitation hôte et que chaque conteneur s'exécute dessus.

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/623708/c6cdea87-5c94-5188-cbf6-b0112bcd0f1e.png ", width="500">

Voir l'image: https://www.ogis-ri.co.jp/otc/hiroba/technical/docker/part1.html

Qu'est-ce qu'un conteneur Docker?

Un conteneur Docker est un environnement virtuel s'exécutant sur le moteur Docker. Avec le conteneur Docker, vous pouvez créer divers environnements, du système d'exploitation tel que CentOS et Ubuntu au middleware tel que Nginx et MySQL, et à des applications telles que Rails et Wordpress. Ces conteneurs ont la fonctionnalité «** s'exécutant à l'aide du noyau du système d'exploitation hôte (noyau Linux) **»! Un noyau Linux est un logiciel de base qui rassemble les fonctions de base requises pour un système d'exploitation.

La question ici est: "** Docker démarrera-t-il sur Windows et Mac sans Linux? **". La réponse se lève! La raison en est que la machine virtuelle Linux s'exécute derrière le démarrage de Docker, de sorte que chaque conteneur s'exécute également sur cette machine virtuelle.

De plus, cette machine virtuelle, Linux, n'est pas indépendante pour chaque conteneur, mais celle qui est commune à tous les conteneurs est utilisée, elle fonctionne donc tout en économisant les ressources (CPU et mémoire) de la machine hôte. Cela rend le conteneur lui-même plus léger, et surtout, la raison pour laquelle le conteneur Docker démarre plus rapidement **.

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/623708/2c9da8b1-609f-20e5-6484-84624142df97.png ", width="500">

Référence: https://kitsune.blog/docker-summary#Docker%25E3%2582%25B3%25E3%2583%25B3%25E3%2583%2586%25E3%2583%258A%25E3%2581%25A8%25E3%2581% 25AF

Qu'est-ce qu'une image Docker?

Une image Docker est comme un ** manuel ** pour créer un conteneur Docker. Un conteneur est créé sur la base de cette image Docker. Chaque image peut être créée comme une nouvelle image en superposant un "calque" sur l '"image de base" originale!

Voir l'image: https://dzone.com/articles/optimizing-spring-boot-application-for-docker

Sommaire

Un bref résumé de Docker et du fonctionnement de Docker. Même si je peux comprendre les grandes lignes de Docker, je pense que si je n'ai pas de connaissances de base sur Linux, je serai coincé avec les paramètres de l'environnement Docker, donc j'aimerais également étudier Linux.

Recommended Posts

[Débutant] Qu'est-ce que Docker en premier lieu? Explication facile à comprendre des bases!
Quelle est la méthode principale en Java?
Qu'est-ce que CHECKSTYLE: OFF trouvé dans la source Java? Checkstyle à savoir de
Qu'est-ce que JSP? ~ Connaissons les bases de JSP !! ~
Qu'est-ce que Docker
Que trouve-t-on ... (3 points) dans la source Java? Argument de longueur variable à connaître
Qu'est-ce que la classe LocalDateTime? [Java débutant] -Date et classe d'heure-
Quelle est la représentation de la connaissance du domaine dans le modèle [DDD]?
[Résumé des livres techniques] Résumé de la lecture "Apprendre Docker à partir des bases"
[Comprendre en 3 minutes] Qu'est-ce que l'héritage Ruby? Seuls les points principaux sont expliqués de manière facile à comprendre!
Pourquoi vous avez besoin de bundle exec
Placer au milieu avec css
Avez-vous arrêté de penser à utiliser getter / setter dans le modèle de conception DTO?
[Débutant] Qu'est-ce que Docker en premier lieu? Explication facile à comprendre des bases!
L'histoire de l'apprentissage de Java dans la première programmation
Quand tu te perds dans le nom de la classe
Pourquoi n'incluez-vous pas Vue.js dans le Laravel de Docker! !!
Surveillance Docker-expliquant les bases des bases-
Quelle est la méthode pluck?
Ceci est le premier message.
Qu'est-ce que la classe BufferedReader?
A quoi sert le constructeur?
[Notions de base Java] Qu'est-ce que la classe?
Quelle est la méthode d'initialisation?
Le référentiel ... n'est pas une erreur signée dans docker build apt-get update
Ce que j'ai fait lors de la migration de la série Spring Boot 1.4 vers la série 2.0
Installez lsb_release à partir de la ligne de commande lorsque lsb_release échoue dans l'environnement docker
Qu'est-ce que @Override ou @SuppressWarnings ("SleepWhileInLoop") devant la fonction? ?? ??
Ce que j'ai fait lors de la migration de la série Spring Boot 1.5 vers la série 2.0