Après avoir compris Docker, je l'ai présenté.

1 À propos de cet article

Il semble que j'utiliserai Docker dans mon nouveau lieu de travail à partir de demain, mais je ne sais pas bien (ou presque rien), alors j'ai cherché.

2 Qu'est-ce que Docker?

Je ne sais pas ce qu'est Docker en premier lieu, alors je l'ai recherché.

Docker est, en un mot, un "environnement de conteneur léger simple et facile à utiliser qui fonctionne sous Linux." Vous pouvez préparer une boîte appelée conteneur sur un système d'exploitation appelé Linux, installer le logiciel et les bibliothèques (outils) nécessaires dans ce conteneur et le conditionner en une seule unité.

Source: Histoire de l'introduction de Docker dans l'environnement de développement pour améliorer l'efficacité du développement-Development Headquarters / TechLunch-


Docker est l'une des technologies qui attirent l'attention dans le domaine de l'infrastructure et du DevOps, et est une plate-forme développée par Docker pour créer, distribuer et exécuter des environnements virtuels de type conteneur. Docker utilise la technologie des conteneurs Linux et est souvent comparé aux machines virtuelles. Dans les machines virtuelles telles que VirtualBox, le système d'exploitation invité est exécuté sur la machine hôte à l'aide de l'hyperviseur, et le middleware, etc. est exécuté dessus. D'autre part, le conteneur utilise le noyau de la machine hôte et isole les processus, les utilisateurs, etc., de sorte qu'il puisse être utilisé comme si une autre machine était en cours d'exécution. Par conséquent, il est léger et peut être démarré et arrêté à grande vitesse.

Source: Introduction à Docker (1er) -Qu'est-ce que Docker et ce qui est bon-

** Il semble que si vous développez dans un environnement de conteneur appelé Docker, vous pouvez empaqueter cet environnement et ce sera pratique **.

3 Installez Docker

Suivez les Documents officiels pour installer Docker sur ubuntu.

3.1 Désinstaller l'ancienne version de Docker au cas où

Il est possible qu'une ancienne version de Docker soit installée au niveau des particules fines, alors exécutez la commande remove. Il semble que vous n'ayez pas à le faire.

$ sudo apt-get remove docker docker-engine docker.io containerd runc

C'est OK si vous voyez quelque chose comme Package'XXXX 'n'est pas installé, donc pas supprimé.

3.2 Mettre à jour l'index du package ・ Installer le package pour qu'apt puisse utiliser le référentiel

Installez les packages requis pour installer Docker. Il semble que l'objectif principal soit de compenser le fait qu'apt ne prend pas en charge HTTPS.

$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common

3.3 Ajout de la clé GPG officielle

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Je ne suis pas sûr de ce que je fais, alors je vais regarder de plus près.

3.3.1 Qu'est-ce que le curl?

Depuis que j'ai installé curl dans 3.2, je peux utiliser la commande curl. Qu'est-ce que la commande curl?

Si vous spécifiez une URL comme argument, le fichier avec cette URL sera téléchargé. La destination de sortie par défaut est "sortie standard", donc enregistrez-la avec une redirection ou spécifiez l'option "-O" ou "-o".

Source: [curl] fichiers de téléchargement (transfert) de commandes à l'aide de divers protocoles

La commande curl est une ** commande à télécharger **. (-fsSL est cette option. Je vais l'omettre cette fois.)

3.3.2 Qu'est-ce que GPG?

L'URL de l'argument de la commande curl est l'URL du GPG de Docker. La commande curl étant une commande à télécharger, vous allez télécharger le GPG de Docker. GPG est une abréviation de ** GnuPG **, et qu'est-ce que c'est?

Un outil qui vérifie la signature d'un fichier avec une clé publique, crypte / décrypte un e-mail avec une paire de clés publique / privée et joint une signature.

Source du devis:GnuPG |Glossaire informatique|Otsuka Shokai

En d'autres termes, vous devez la considérer comme ** la clé requise pour l'authentification **.

3.3.3 Qu'est-ce que apt-key?

Je passe le Docker GPG à apt-key. Qu'est-ce que apt-key?

"Apt-key" est une commande qui gère la liste des clés que "apt" utilise pour authentifier les paquets. Afin d'obtenir le package d'un autre que Ubuntu officiel, il est nécessaire de capturer les informations clés pour être authentifié par cette commande.

Source: Comment utiliser apt ・ apt-key | npaka | note

En d'autres termes, il semble que pour installer Docker, il soit nécessaire d'importer le GPG de Docker dans la clé d'application locale.

3.4 Confirmation de clé

Assurez-vous que la clé GPG a été ajoutée. L'empreinte digitale de la clé GPG de Docker est "9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88", recherchez donc les 8 derniers chiffres comme suit, et si le résultat s'affiche, c'est OK.

$ sudo apt-key fingerprint 0EBFCD88
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <[email protected]>
sub   rsa4096 2017-02-22 [S]

3.5 Configurer un référentiel stable

$sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

[Ubuntu] Comment ajouter / supprimer PPA | Projet Hbk

Si vous lisez cet article, il est facile de comprendre sur quoi vous travaillez. Par défaut, les seuls paquets qui peuvent être installés avec apt sont ceux de /etc/apt/source.list. En d'autres termes, pour installer Docker, il est nécessaire d'ajouter PPA (Personal Package Archive).

3.6 Exécution de l'installation

Mettez à jour l'index des packages d'Apt et effectuez l'installation.

$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

Ceci termine l'installation de Docker.

4 Essayez d'utiliser Docker

De là, c'est la production. Utilisons effectivement Docker conformément au Document officiel.

4.1 Orientation

Tout d'abord, vérifiez si Docker fonctionne.

4.1.1 Vérification de la version

Assurez-vous que Docker est vraiment installé.

$ docker --version
Docker version 19.03.12, build 48a66213fe

C'était fait.

4.1.2 Lancer l'image hello-world

Obtenez l'image de bonjour-monde.

$ docker run hello-world

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete
Digest: sha256:ca0eeb6fb05351dfc8759c20733c91def84cb8007aa89a5bf606bc8b315b9fc7
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.
...

Il est facile de comprendre ce que vous faites en vous référant au site suivant.

Introduction à Docker (2nd) -Docker setup, container startup- | Sakura Knowledge

** L'image officielle "hello-world" dans le service de partage de conteneurs appelé Docker Hub est acquise et le conteneur est démarré en fonction de celle-ci **.

Référence: page d'image hello-world

4.1.3 Confirmer que l'image a été téléchargée

$ docker image ls

Vous pouvez voir qu'il y a une image de bonjour-monde.

4.1.4 Confirmer que le conteneur est démarré

docker run n'est pas une commande pour obtenir une image à l'origine, mais une commande pour démarrer un conteneur basé sur une image, le conteneur doit donc être démarré.

$ docker ps --all

CONTAINER ID     IMAGE           COMMAND      CREATED            STATUS
54f4984ed6a8     hello-world     "/hello"     20 seconds ago     Exited (0) 19 seconds ago

Certes, le conteneur a été confirmé.

4.2 Construire l'image et exécuter le conteneur

Maintenant que Docker est en cours d'exécution, il est temps de créer et d'exécuter l'image.

4.2.1 Créer un clone git pour l'application de tableau d'affichage

Clonez l'application de tableau d'affichage pour la tester.

$ git clone https://github.com/dockersamples/node-bulletin-board

4.2.2 Construire l'image

Construisez l'image.

$ cd node-bulletin-board/bulletin-board-app
$ docker build --tag bulletinboard:1.0 .

Comme mentionné dans 4.1.2, vous avez besoin d'une image pour démarrer le conteneur. J'ai apporté l'image officielle en 4.1.2, mais comme il y a autant d'environnements de conteneurs que d'environnements de développement, vous avez besoin de votre propre image (si vous la recherchez, vous pourrez peut-être utiliser celle publiée sur Docker Hub. Mais). La construction ** crée une nouvelle image basée sur une image existante (image de base) **. La construction est exécutée à l'endroit où ** Dockerfile ** est placé, et elle est exécutée en fonction du Dockerfile.

Jetons un coup d'œil au Dockerfile.

Dockerfile


FROM node:current-slim

WORKDIR /usr/src/app
COPY package.json .
RUN npm install

EXPOSE 8080
CMD [ "npm", "start" ]

COPY . .

Notez le "nœud FROM: current-slim" sur la première ligne. C'est une description qu'une nouvelle image est construite sur la base de l'image de base "node: current-slim". Une image nommée "bullet inboard: 1.0.", Qui est l'argument de la commande exécutée précédemment, a été créée. Vérifions si l'image est réellement créée.

$ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
bulletinboard       1.0                 789f62d53520        13 minutes ago      177MB
node                current-slim        3aaf4acbaad7        2 days ago          159MB
hello-world         latest              bf756fb1ae65        10 months ago       13.3kB

Vous pouvez voir l'image de base et l'image construite.

4.2.3 Lancer le conteneur

Démarrez le conteneur en fonction de l'image créée.

$ docker run --publish 8000:8080 --detach --name bb bulletinboard:1.0

Vous pouvez vérifier que l'application de tableau d'affichage est en cours d'exécution en accédant à localhost: 8000 avec un navigateur. Regardons cela de plus près.

4.2.3.1 --publish 8000:8080

8000 est le numéro de port côté hôte et 8080 est le numéro de port côté conteneur.

4.2.3.2 --detach

Cette option est utilisée lors du démarrage du conteneur en arrière-plan.

4.2.3.3 --name bb bulletinboard:1.0 Démarrez un conteneur nommé "bb" basé sur l'image "bullet inboard: 1.0".

4.2.4 Arrêter le conteneur

Arrêtez / supprimez le conteneur.

docker rm --force bb

Vous avez maintenant une bonne compréhension de la création d'images et de la conteneurisation.

5 Enfin

Je suis content d'avoir eu une idée approximative de la façon de créer et de distribuer un environnement de conteneur à l'aide de Docker.

Veuillez également suivre Twitter!

Recommended Posts

Après avoir compris Docker, je l'ai présenté.
Utilisons-le après avoir compris sudo!
J'ai installé Docker sur EC2 et l'ai démarré
Je ne trouve pas l'image du docker après la mise à jour vers Docker Desktop 2.4.0.0