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é.
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é.
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 **.
Suivez les Documents officiels pour installer Docker sur ubuntu.
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é.
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
$ 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.
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.)
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 **.
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.
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.
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]
$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).
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.
De là, c'est la production. Utilisons effectivement Docker conformément au Document officiel.
Tout d'abord, vérifiez si Docker fonctionne.
Assurez-vous que Docker est vraiment installé.
$ docker --version
Docker version 19.03.12, build 48a66213fe
C'était fait.
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
$ docker image ls
Vous pouvez voir qu'il y a une image de bonjour-monde.
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é.
Maintenant que Docker est en cours d'exécution, il est temps de créer et d'exécuter l'image.
Clonez l'application de tableau d'affichage pour la tester.
$ git clone https://github.com/dockersamples/node-bulletin-board
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.
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".
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.
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!