[LINUX] Je vais résumer ce que j'ai été heureux de faire pour sortir de l'état où je ne connais même pas la lettre D de Docker

Aperçu

Quand je touchais à Docker, je me retrouvais souvent coincé dans ce que je devais étudier, alors je vais essayer d'organiser ce que je pensais être particulièrement utile pendant mes études.

Public cible

C'est bien de commencer avec Docker, mais je ne comprends pas du tout l'infrastructure ou Linux, mais l'accent est mis sur le niveau de vouloir faire quelque chose à ce sujet. Les parties profondes telles que l'entrée dans k8 et les meilleures pratiques pour maîtriser Docker dans la pratique pratique sont exclues. Je voudrais plutôt lire s’il existe une telle chose.

De plus, cet article se concentre sur les connaissances nécessaires pour pouvoir créer un environnement d'exécution d'application Web avec Docker. Par conséquent, si vous avez de l'expérience dans la création d'applications Web simples utilisant des bases de données, vous pourriez être motivé à étudier Docker.

Préface

Il y a environ un an, j'ai soudainement pensé que je devrais faire ** Docker **. Docker a beaucoup d'articles d'introduction, et je suis allé rapidement au point où je ne pouvais pas le déplacer pour le moment en l'imitant. Cependant, à cette époque, je n'avais aucune connaissance de Linux ou de l'infrastructure, donc je ne savais pas ce que je faisais, encore moins le principe de fonctionnement, et je ne pouvais pas mettre la main dessus depuis le début.

Il y avait de nombreux articles d'introduction sur Docker lui-même, mais je n'ai pas pu trouver une image complète de «quelles connaissances sont nécessaires pour comprendre Docker». Je pensais que Docker était encore tôt pour moi, mais je voulais être capable de comprendre Docker après tout, et j'étudiais en faisant diverses choses.

On est encore loin d'un état où j'ai pleinement compris Docker, mais je me suis demandé si j'avais pu renforcer les connaissances préalables nécessaires à la compréhension de la partie de base, et j'ai réussi à échapper à l'état où je ne pouvais pas du tout imaginer le fonctionnement de Docker ... doit.


Même si je pouvais à peine sortir de l'état où je ne comprenais pas Docker, je ne savais pas quoi faire pour me débarrasser de la faiblesse de Docker, et il était difficile pour moi de continuer à tâtonner. Donc, si vous avez un mémorandum, je voudrais résumer ce que j’ai jugé bon de faire cela. Si vous faites cela, Docker sera parfait !! ... ce n'est pas comme ça, mais j'espère que cela aide.

Dans ce qui suit, nous présenterons principalement des livres. À ce stade, il peut être bon de savoir «ce que vous voulez apprendre» pour chacun. Je ne sais pas si cela servira de guide, mais en plus de présenter ce qui m'a plu, je vais également décrire ce que je voulais apprendre.

Linux

Comprendre Linux est essentiel pour apprendre comment fonctionne Docker, sans parler des opérations à l'intérieur du conteneur. Cependant, même si vous ne regardez que Linux, le contenu à étudier est très large et il est facile de se demander par quoi commencer. Vous trouverez ci-dessous quelques livres qui vous ont aidé à comprendre les commandes de base, les opérations à l'intérieur du conteneur et les principes de fonctionnement de Docker.

Nouveau manuel Linux

Au départ, j'avais eu beaucoup d'occasions de travailler avec Linux, mais c'était la première fois que j'apprenais à fond en utilisant des livres. En conclusion, je pense que la première chose que j'ai commencée avec ce livre était la bonne réponse. Le shell est très facile à lire car il commence par quelque chose et introduit les commandes qui ont été utilisées dans l'atmosphère d'une manière qui accumule soigneusement les connaissances une par une.

Dans la plupart des cas, fonctionner à l'intérieur d'un conteneur nécessite une opération de shell Linux comme prérequis. Si vous partez d'ici, vous ne saurez pas quoi faire lorsque vous entrez dans le conteneur et vous n'aurez pas à vous en soucier. Les bases de Linux sont très complètes, je voudrais donc continuer à le lire régulièrement.


Guide de construction et d'utilisation du serveur Linux à partir de zéro Comment faire en sorte qu'un serveur Web apprenne en cours d'exécution

L'un des avantages de l'apprentissage de Docker est qu'il facilite la création d'un environnement. Ce n'est que lorsque vous réaliserez cela que vous serez plus motivé pour apprendre Docker.

Donc, quand je me suis habitué à l'opération shell, j'ai en fait essayé de créer l'environnement en déplaçant mes mains en fonction du livre. Dans le monde d'aujourd'hui, vous pouvez créer un serveur à faible coût en utilisant des services VPS ou cloud. Après avoir étudié, je pense que c'est une bonne idée de le construire en tant que serveur au lieu d'un conteneur. Si vous êtes préoccupé par la sécurité, vous pouvez essayer d'utiliser VM.

Ce livre est structuré afin que vous puissiez apprendre à créer un environnement LAMP tout en renforçant les connaissances nécessaires à la construction d'un serveur. Il y a une histoire sur les réseaux entre les deux, et elle est expliquée ici, mais si vous êtes coincé, étudier d'abord les réseaux, puis réessayer peut être douloureux.


Essayez de comprendre comment fonctionne Linux - Connaissance de base du système d'exploitation et du matériel acquise grâce à des expériences et des illustrations

Docker partage le noyau

Comme le dit le mot, il est important de comprendre le noyau pour connaître Docker en profondeur. Cependant, pour comprendre le noyau, une connaissance approfondie et une expérience dans un large éventail de domaines sont nécessaires. Si vous voulez bien apprendre le noyau, vous devez être prêt à affronter des livres difficiles et épais, mais si vous êtes au stade de la mise en route de Docker, je pense qu'un tel livre d'introduction suffit, j'en suis sûr. ...

Un peu hors des sentiers battus, ce livre explique des concepts difficiles de manière facile à comprendre avec une multitude de diagrammes. Même si vous vous perdez un peu dans le texte, celui-ci sera immédiatement complété par un diagramme pour renforcer l'image, ce qui vous évitera de vous retirer au milieu, ce qui est courant dans les livres difficiles.

En outre, vous pouvez apprendre non seulement des illustrations, mais également la gestion des processus et la gestion de la mémoire en connectant des images au code en utilisant réellement un exemple de code écrit en langage C. Cette connexion prend du temps, mais elle approfondit votre compréhension à un niveau qui ne peut être obtenu simplement en suivant la lettre.

Après avoir lu ce livre, il est devenu beaucoup plus facile d'imaginer le principe de fonctionnement de Docker. Le niveau de difficulté augmentera régulièrement à partir du domaine de la gestion de la mémoire, mais je pense que cela en vaut la peine.


réseau

Lorsqu'il s'agissait de Docker, il était difficile de saisir l'image de la communication entre les conteneurs, et au début c'était difficile à comprendre. À cette époque, j'avais très peu de connaissances sur les réseaux, et j'avais peu d'occasions de m'impliquer dans les affaires, donc je pense personnellement que c'est la pierre d'achoppement la plus difficile.

Sans parler du réseau lui-même, le périmètre d'étude est très large. Cependant, si votre objectif est de comprendre le réseau de Docker, il peut être plus facile de vous concentrer sur les couches 2 et 3.

[Cours de base sur le réseau de 3 minutes](https://www.amazon.co.jp/%E6%94%B9%E8%A8%82%E6%96%B0%E7%89%88-3%E5%88 % 86% E9% 96% 93% E3% 83% 8D% E3% 83% 83% E3% 83% 88% E3% 83% AF% E3% 83% BC% E3% 82% AF% E5% 9F% BA % E7% A4% 8E% E8% AC% 9B% E5% BA% A7-% E7% B6% B2% E9% 87% 8E-% E8% A1% 9B% E4% BA% 8C / dp / 4774143731)

Ceci est une version livre de ce qui est publié sur le site Web. En se concentrant sur les couches 1 à 3, divers termes sont écrits de manière interactive avec des figures. Lorsque je lisais des livres liés au réseau, les couches ici avaient peu d'occasions de toucher mon travail et mes passe-temps, et j'avais du mal à avoir une vue d'ensemble. Surtout au début, il était souvent déroutant d'expliquer avec des histoires plus profondes telles que les normes Ethernet et la physique.

D'un autre côté, ce livre n'est ni trop profond ni trop superficiel, et chaque terme est écrit dans juste la bonne quantité de prune salée, il est donc recommandé comme première étape. La quantité de texte peut être lue rapidement, vous pouvez donc la lire plusieurs fois pour vous habituer aux termes liés au réseau. De plus, la version du site Web présente diverses différences par rapport à la version du livre, veuillez donc y jeter un coup d'œil si vous êtes intéressé.

Manuel de capture de paquets

Par exemple, dans le cas d'un programme, après avoir appris la grammaire, en écrivant réellement le code source, vous pouvez établir les connaissances par l'expérience. Cependant, en ce qui concerne les réseaux, le chemin pour voir et manipuler les communications réelles n'est pas aussi informatif que lors de l'écriture d'un programme.

Pendant ce temps, en rencontrant ce livre, je suis devenu un peu meilleur dans la conscience que je n'étais pas bon dans les réseaux. La composition elle-même explique chaque couche qui est commune, mais après tout, elle explique en détail l'état réel du paquet pour chaque couche, y compris un diagramme qui décrit soigneusement le flux. Je vous remercie. Une connaissance approfondie de chaque couche est requise comme condition préalable, mais la lecture répétée devrait pousser votre connaissance des réseaux un peu plus loin du stade du manuel.

De plus, lorsque vous utilisez Docker en tant que serveur de production, des connaissances autres que les couches 1 à 3 telles que la prise en charge HTTPS et DNS sont nécessaires, donc si vous la relisez à chaque fois, vous pourrez peut-être apprendre en douceur lors de l'application.

Introduction au réseau TCP / IP lors de l'exécution sous Linux

C'est un livre récemment publié, mais il était très intéressant à lire, je vais donc le présenter ici. Dans Docker, je vois souvent l'explication selon laquelle vous pouvez configurer un réseau virtuel en utilisant ce que l'on appelle un espace de noms réseau, mais en réalité, cela seul ne suffit pas.

Dans ce livre, non seulement la création d'un réseau virtuel avec un espace de noms réseau, mais aussi la communication avec Ethernet et IP est expliquée avec soin dès le moment de la configuration de l'interface réseau.

Pour chaque couche de TCP / IP, vous pouvez créer les paramètres et les interfaces nécessaires à la communication avec l'espace de noms réseau, et tout en vérifiant la communication réelle avec tcpdump, vous pouvez voir `étape par étape jusqu'à ce que la communication devienne possible '. .. Si vous apprenez les bases de Linux, lisez les manuels de réseau listés ci-dessus, puis travaillez dessus, vous en apprendrez plus sur le processus permettant aux ordinateurs de communiquer entre eux via le réseau.

De plus, en définissant réellement l'interface avec l'espace de noms réseau, je pense que la compréhension de Docker autour du réseau sera encore améliorée.


(De côté) En parlant de livres d'introduction aux réseaux, «Pourquoi les réseaux sont connectés» et «Maîtriser l'édition d'introduction TCP / IP» sont répertoriés comme standard. Ces livres sont certes faciles à comprendre, mais si vous essayez avec peu de connaissances du réseau, vous aurez beaucoup de problèmes. (J'ai eu du mal à entrer d'ici)

Tout d'abord, lisez le livre d'introduction mentionné ci-dessus, et lorsque vous avez réellement besoin de connaissances liées au réseau d'une manière ou d'une autre, je pense que vous pouvez en profiter pleinement si vous l'essayez.

Docker

Bien sûr, pour apprendre à utiliser Docker, vous devez également étudier Docker lui-même. Il existe de nombreuses excellentes informations d'introduction à Docker sur le net, y compris Qiita. Vous pouvez avoir une idée de l'atmosphère en recherchant Docker Primer et en touchant certaines des choses qui semblent bonnes. À ce stade, non seulement lire, mais aussi bouger vos mains, écrire un Dockerfile, utiliser Docker Compose, essayer diverses choses, échouer, réussir, etc. C'est important.

Au début, je ne comprends pas pourquoi chaque commande et chaque description de paramètre sont nécessaires, donc je pense que ce sera difficile. Cependant, si vous avez acquis les connaissances de base à partir de celles mentionnées jusqu'à présent, cela ne doit pas signifier que vous n'avez pas suffisamment de connaissances préalables et que vous ne pouvez pas sortir de vos mains ou de vos pieds, vous devriez donc pouvoir faire avancer votre compréhension petit à petit.

Voici quelques-unes des choses sur lesquelles j'ai travaillé, donc si vous vous demandez par quoi commencer, vous voudrez peut-être les essayer si vous avez des exercices.

À l'heure actuelle, la plupart d'entre elles ont déjà été publiées sous forme d'images utiles, mais au début, si vous étudiez et construisez également votre distribution Linux préférée en tant qu'image de base, vous approfondirez votre compréhension. pense.


Cependant, j'aimerais utiliser des livres pour l'apprentissage systématique. Voici quelques-uns des meilleurs livres d'introduction Docker que j'ai lus.

Docker compris par manga

Il y a 3 volumes au total, mais au stade d'introduction, je pense que 1 ou 2 volumes suffisent. Puisque les termes de Docker sont expliqués dans un format de dessin animé, même si vous connaissez la signification de mots tels que "image" et "conteneur", il convient pour sortir de l'état difficile à imaginer dans votre esprit. Si vous le lisez avec les articles d'introduction sur le net, vous obtiendrez une bonne compréhension dans un premier temps.

Docker Deep Dive

C'est un livre en anglais, donc cela peut sembler difficile à première vue, mais il n'utilise pas de mots ou d'expressions anglais difficiles, donc si vous n'êtes pas trop mauvais en anglais, veuillez le lire. Divers éléments de Docker sont expliqués dans les chapitres sous la forme de "vue d'ensemble", "explication détaillée" et "commande", et le niveau de difficulté ne saute pas soudainement dans un chapitre, vous pouvez donc certainement apprendre étape par étape.

Si vous le lisez après avoir bougé vos mains dans une certaine mesure, vous devriez être en mesure de sortir de l'état "Docker je ne comprends pas" en reliant les connaissances dispersées en morceaux avec des chapitres clairs. Pour bien comprendre le contenu, vous avez besoin d'un large éventail de connaissances telles que Linux et le réseau, mais si vous accumulez les éléments introduits jusqu'à présent, vous pourrez sûrement y faire face.

Autre

C'est un peu différent de la compréhension de Docker lui-même, mais voici quelques-unes des choses que je suis content d'avoir fait.

Vim

Vim Masterclass

Lorsque vous entrez dans le conteneur et que vous utilisez le fichier de paramètres pendant un certain temps, vous pouvez le faire depuis l'hôte ou utiliser la fonction d'extension de l'éditeur. Cependant, ce serait très pratique s'il y avait un outil qui pourrait être utilisé rapidement dans de tels cas. Dans de tels moments, étudier Vim vous mettra à l'aise dans le conteneur.

Vim lui-même fait beaucoup parler de lui partout, je n'entrerai donc pas dans les détails. Si vous ne souhaitez pas le personnaliser avec des extensions, étudier dans le cours Udemy ci-dessus vous aidera à comprendre comment l'utiliser facilement en quelques heures. Bien qu'il soit en anglais, il a également une fonction de sous-titre, et surtout, les exercices sont réalisés sous une forme qui convient parfaitement à l'apprentissage des opérations de base de Vim, vous pourrez donc apprendre les bienfaits de Vim sans vous fatiguer.

Git

Introduction à l'utilisation de Git pour apprendre avec Wakaba

[Manuel Git pour les ingénieurs [avancé] Comprendre le mécanisme interne de Git](https://www.amazon.co.jp/%E3%82%A8%E3%83%B3%E3%82% B8% E3% 83% 8B% E3% 82% A2% E3% 81% AE% E3% 81% 9F% E3% 82% 81% E3% 81% AEGit% E3% 81% AE% E6% 95% 99% E7% A7% 91% E6% 9B% B8% EF% BC% BB% E4% B8% 8A% E7% B4% 9A% E7% B7% A8% EF% BC% BD-Git% E5% 86% 85% E9% 83% A8% E3% 81% AE% E4% BB% 95% E7% B5% 84% E3% 81% BF% E3% 82% 92% E7% 90% 86% E8% A7% A3% E3% 81% 99% E3% 82% 8B-% E6% B2% B3% E6% 9D% 91% E8% 81% 96% E6% 82% 9F-ebook / dp / B01AAIN85K)

Je pense que vous pouvez comprendre Docker sans connaître Git lui-même. Cependant, étant donné que le code source de l'application gérée dans l'environnement construit avec Docker sera géré avec le Git de base, il n'y a aucune perte d'apprentissage ensemble.

Git a beaucoup de choses merveilleuses en plus des livres listés ici et en ligne, donc je pense que vous ne vous perdrez pas.


Résumé

Quand j'ai commencé à écrire avec un petit arrangement ou une sensation de légèreté, cela devenait plus long que prévu. Si vous souhaitez utiliser Docker comme un simple outil, vous pouvez le faire en mémorisant que vous pouvez appuyer sur cette commande sans faire cela et en utilisant la belle image fournie. ..

Cependant, personnellement, je pense qu'il vaut mieux apprendre des bases et poursuivre ** pourquoi **, même si c'est un petit détour.

Ce n'est pas aussi bon ou mauvais, juste parce que c'est plus amusant. Avec Docker, j'ai commencé à m'intéresser aux réseaux et à Linux, et il y a plus d'un an, je suis devenu plus friand de Docker, de l'infrastructure et de Linux. Au fur et à mesure que vous en aimez et en apprenez plus, votre curiosité intellectuelle est stimulée, ce qui est amusant.

Si vous écrivez plus que cela, cela déraillera, donc je vais l'omettre, mais j'espère que cet article vous aidera à apprendre même un peu de plaisir.

Recommended Posts

Je vais résumer ce que j'ai été heureux de faire pour sortir de l'état où je ne connais même pas la lettre D de Docker
Que faire lorsque vous obtenez "Je ne peux pas voir le site !!!!"
Je veux obtenir le chemin du répertoire où le fichier en cours d'exécution est stocké.
Exemple de ce qu'il faut faire lorsque l'exemple de script ne fonctionne pas (OpenCV-Python)
Je souhaite visualiser l'état des transferts de la J League 2020, que dois-je faire?
J'étais en difficulté car le comportement du conteneur docker n'a pas changé
Que faire quand n'est pas dans le fichier sudoers. Cet incident sera signalé.
estimation personnelle en temps réel (que dois-je faire pour éviter l'estimation d'images en dehors de la catégorie) * Échec.
C'était un peu difficile de faire flacon avec la version docker de nginx-unit
J'ai essayé de résumer la forme de base de GPLVM
J'ai essayé de résumer les opérations de chaîne de Python
Que faire si l'image n'est pas affichée à l'aide de matplotlib etc. dans le conteneur Docker
J'étais en charge de la maintenance du script Fabric, mais je ne sais pas.> <À ceux qui
J'ai essayé d'obtenir les informations de localisation du bus Odakyu
Je veux obtenir des informations sur le fonctionnement de Yahoo Route
[Apprentissage automatique] J'ai essayé de résumer la théorie d'Adaboost
Je veux connaître la nature de Python et pip
Keras Je veux obtenir la sortie de n'importe quelle couche !!
Je veux connaître la légende du monde des technologies informatiques