Installer et utiliser Docker sur ubuntu20

Docker est une application qui simplifie le processus de gestion des processus d'application dans des conteneurs. Les conteneurs vous permettent d'exécuter des applications dans des processus isolés par des ressources. Ils sont similaires aux machines virtuelles, mais les conteneurs sont plus faciles à transplanter, utilisent moins de ressources et dépendent davantage des ressources du système hôte.

Dans cet article, Docker Community Edition (CE) sera installé et utilisé sur Ubuntu 20.04. Utilisez simplement simultanément le conteneur et l'image, puis poussez l'image vers le référentiel Docker.

Cet article suppose que vous disposez d'un compte d'utilisateur avec des privilèges de groupe sudo, mais pas root.

Sinon, créez-en un sous la racine 

adduser sammy

usermod -aG sudo sammy

Cela crée un utilisateur avec des privilèges sudo

1: Installez Docker

Mettez d'abord à jour tous les packages d'installation:

mise à jour sudo apt

Ensuite, installez quelques packages prérequis pour utiliser le package via HTTPS:
sudo apt install apt-transport-https ca-certificates curl software-properties-common

Ajoutez la clé GPG du référentiel Docker officiel au système:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add-

Ajoutez le référentiel Docker à la source APT:
sudo add-apt-repository "deb [arch = amd64] https://download.docker.com/linux/ubuntu focal stable"

Mettez à jour la base de données du package avec le package Docker dans l'entrepôt nouvellement ajouté:
sudo apt update

Assurez-vous que vous souhaitez installer à partir du référentiel Docker au lieu du référentiel Ubuntu par défaut:
apt-cache policy docker-ce

Enfin, docker est effectivement installé

sudo apt installer docker-ce

docker est maintenant installé, le démon est démarré et le processus sera lancé la prochaine fois que le système sera activé. Vérifiez s'il est en cours d'exécution:

menu fixe de statut sudo systemctl

peut être vu:

● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-02-20 18:05:52 UTC; 5min ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 11985 (dockerd)
      Tasks: 8
     Memory: 39.4M
     CGroup: /system.slice/docker.service
             └─11985 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
...


 

2: Exécuter les commandes Docker sans sudo

Par défaut, vous ne pouvez exécuter des commandes docker qu'en tant qu'utilisateur root ou en tant qu'utilisateurs dans le groupe Docker, et le groupe Docker est automatiquement créé pendant le processus d'installation Docker. Afin de ne pas utiliser le préfixe sudo, vous devez rejoindre le groupe doccker:

sudo usermod -aG docker $ {USER}
doit se déconnecter, puis se connecter à ces informations de groupe pour prendre effet. Ou c'est bien aussi. Je me suis déconnecté puis connecté. Je n'ai pas essayé les méthodes suivantes.
su - $ {USER}

La commande pour vérifier dans quel groupe vous êtes est:
id -nG

Les informations suivantes doivent être affichées

sammy sudo docker

Si vous ajoutez quelqu'un au groupe docker, utilisez la commande suivante, où username est le nom d'utilisateur de quelqu'un d'autre
sudo usermod -aG docker username

La commande docker utilisée plus loin dans cet article suppose que vous êtes dans le groupe docker, sinon sudo
 

3: utiliser les commandes Docker

L'utilisation de docker implique de lui transmettre une série d'options et de commandes, suivies de paramètres. La grammaire prend la forme suivante:

docker [option] [commande] [arguments]

Pour afficher toutes les sous-commandes disponibles, tapez:
docker

Pour voir les options disponibles pour une commande spécifique, tapez:
docker docker-subcommand --help

La commande suivante pour afficher les informations système du
docker infos sur le docker

4, Image Docker

Les conteneurs Docker sont créés à partir d'images Docker. Par défaut, Docker extrait ces images de Docker Hub, qui est un registre Docker géré par Docker, la société derrière le projet Docker. Tout le monde peut héberger ses images Docker sur Docker Hub, de sorte que la plupart des applications et distributions Linux dont vous avez besoin hébergeront les images.

Testons un simple bonjour-monde:

docker exécuter bonjour le monde

Des informations similaires aux suivantes doivent être affichées:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:6a65f928fb91fcfbc963f7aa6d57c8eeb426ad9a20c7ee045538ef34847f44f1
Status: Downloaded newer image for hello-world:latest

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

Docker était initialement incapable de trouver l'image hello-world localement, il a donc téléchargé l'image à partir du référentiel par défaut Docker Hub. Après avoir téléchargé l'image, Docker créera un conteneur basé sur l'image, exécutera l'application dans le conteneur et affichera un message.

Vous pouvez utiliser la commande docker et la sous-commande de recherche pour rechercher des images disponibles sur Docker Hub. Par exemple, pour rechercher des images Ubuntu, entrez:

recherche docker ubuntu

Dans la colonne OFFICIEL, OK représente une image construite et soutenue par l'entreprise derrière le projet. Après avoir déterminé l'image que vous souhaitez utiliser, vous pouvez utiliser la sous-commande pull pour la télécharger sur votre ordinateur.

Exécutez la commande suivante pour télécharger l'image officielle ubuntu vers le local:

docker pull ubuntu

Après avoir téléchargé l'image, vous pouvez utiliser l'image téléchargée avec la sous-commande run pour exécuter le conteneur. Comme le montre l'exemple hello-world, si l'image n'est pas téléchargée lors de l'exécution de docker avec la sous-commande run, le client Docker télécharge d'abord l'image, puis utilise l'image pour exécuter le conteneur.

Pour afficher l'image qui a été téléchargée sur l'ordinateur, tapez:

images de docker

Les informations affichées sont les suivantes:

REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
ubuntu        latest    f63181f19b2f   4 weeks ago     72.9MB
hello-world   latest    bf756fb1ae65   13 months ago   13.3kB

5: conteneur Docker

Le conteneur hello-world exécuté à l'étape précédente est un exemple de conteneur qui s'exécute et se ferme après l'émission d'un message de test. Les conteneurs peuvent être beaucoup plus utiles que cela et ils peuvent être interactifs. Après tout, ils sont similaires aux machines virtuelles, mais sont plus respectueux des ressources.

Par exemple, exécutons un conteneur en utilisant la dernière image d'Ubuntu. La combinaison des commutateurs -i et -t vous permet d'accéder de manière interactive au shell:

docker exécuter -it ubuntu

Ensuite, il y a l'affichage suivant, et entrez l'ubuntu du conteneur 

leon@ubuntu-s-1vcpu-1gb-tor1-01:~$ docker run -it ubuntu

root@bd612e776819:/#

Mettez d'abord à jour la liste des packages:

root@bd612e776819:/# apt update
Get:1 http://security.ubuntu.com/ubuntu focal-security InRelease [109 kB]

Par exemple, installez nodejs

root@bd612e776819:/# apt install nodejs
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:

 Ensuite, vérifiez la version du nœud:

root@bd612e776819:/# node -v
v10.19.0

Toutes les opérations concernent uniquement ce conteneur.

Pour quitter, saisissez:

sortir

root@bd612e776819:/# exit
exit
leon@ubuntu-s-1vcpu-1gb-tor1-01:~$

6: Gérer les conteneurs Docker

Après avoir utilisé Docker pendant un certain temps, il y aura de nombreux conteneurs actifs (en cours d'exécution) et inactifs sur votre ordinateur. Pour afficher l'activité, utilisez:

docker ps

Je n'ai aucune activité ici, donc c'est affiché comme ceci:

leon@ubuntu-s-1vcpu-1gb-tor1-01:~$ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

Pour afficher tous les conteneurs, procédez comme
suit : docker ps -a

L'affichage est comme ceci:

leon@ubuntu-s-1vcpu-1gb-tor1-01:~$ docker ps -a
CONTAINER ID   IMAGE         COMMAND       CREATED             STATUS                         PORTS     NAMES
bd612e776819   ubuntu        "/bin/bash"   53 minutes ago      Exited (0) 22 minutes ago                gallant_visvesvaraya
bdbf06b1c3bc   hello-world   "/hello"      About an hour ago   Exited (0) About an hour ago             nifty_benz

Pour afficher les conteneurs récemment créés, utilisez -l
docker ps -l

Pour démarrer un conteneur arrêté, utilisez docker start suivi de l'ID du conteneur ou du nom du conteneur. Commençons le conteneur basé sur Ubuntu avec l'ID bdbf06b1c3bc:
docker start bdbf06b1c3bc

Cet ID est différent, comme vous pouvez le voir dans la vue docker ps -a, ce qui suit est après le démarrage, puis utilisez docker ps pour afficher:

 docker start bd612e776819
bd612e776819
leon@ubuntu-s-1vcpu-1gb-tor1-01:~$ docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED             STATUS         PORTS     NAMES
bd612e776819   ubuntu    "/bin/bash"   About an hour ago   Up 7 seconds             gallant_visvesvaraya

Pour arrêter un conteneur en cours d'exécution, utilisez docker stop suivi de l'ID ou du nom du conteneur. Cette fois, nous utiliserons le nom de conteneur gallant_visvesvaraya attribué par Docker:

docker stop gallant_visvesvaraya

Après avoir confirmé que le conteneur n'est plus nécessaire, utilisez la commande docker rm pour le supprimer à nouveau à l'aide de l'ID ou du nom du conteneur. Utilisez la commande docker ps -a pour rechercher l'ID de conteneur ou le nom du conteneur associé à l'image hello-world et supprimez-le.

docker rm nifty_benz

Ce qui suit est le processus de vérification avec ps -a d'abord, et de vérification après rm. nifty_benz est le nom que ps voit, chacun est différent.

leon@ubuntu-s-1vcpu-1gb-tor1-01:~$ docker ps -a
CONTAINER ID   IMAGE         COMMAND       CREATED       STATUS                          PORTS     NAMES
bd612e776819   ubuntu        "/bin/bash"   6 hours ago   Exited (0) About a minute ago             gallant_visvesvaraya
bdbf06b1c3bc   hello-world   "/hello"      6 hours ago   Exited (0) 5 hours ago                    nifty_benz
leon@ubuntu-s-1vcpu-1gb-tor1-01:~$ docker rm nifty_benz
nifty_benz
leon@ubuntu-s-1vcpu-1gb-tor1-01:~$ docker ps -a
CONTAINER ID   IMAGE     COMMAND       CREATED       STATUS                     PORTS     NAMES
bd612e776819   ubuntu    "/bin/bash"   6 hours ago   Exited (0) 2 minutes ago             gallant_visvesvaraya
leon@ubuntu-s-1vcpu-1gb-tor1-01:~$

Vous pouvez démarrer un nouveau conteneur et le nommer avec le commutateur --name. Vous pouvez également utiliser le commutateur --rm pour créer un conteneur, qui sera supprimé lorsqu'il s'arrêtera. Pour plus d'informations sur ces options et d'autres, consultez la commande docker run help.

Les conteneurs peuvent être convertis en images et peuvent être utilisés pour créer de nouveaux conteneurs. Voyons comment cela fonctionne.

7: Valider les modifications dans le conteneur

Lorsque vous démarrez une image Docker, vous pouvez créer, modifier et supprimer des fichiers comme en utilisant une machine virtuelle. Les modifications apportées ne seront appliquées qu'à ce conteneur. Il peut être démarré et arrêté, mais une fois détruit avec la commande docker rm, les modifications seront définitivement perdues.

Cette section explique comment enregistrer l'état du conteneur en tant que nouvelle image Docker.

Après avoir installé Node.js dans le conteneur Ubuntu, il existe désormais un conteneur pour exécuter l'image, mais le conteneur est différent de l'image utilisée pour la créer. Mais à l'avenir, vous souhaiterez peut-être réutiliser ce conteneur Node.js comme base pour une nouvelle image.

Utilisez ensuite la commande suivante pour valider les modifications dans la nouvelle instance d'image Docker.

docker commit -m "Ce que vous avez fait à l'image" -a "Nom de l'auteur" container_id repository / new_image_name

Le commutateur -m est utilisé pour soumettre un message, ce qui vous aide, ainsi que les autres, à connaître les modifications que vous avez apportées, et -a est utilisé pour spécifier l'auteur. Le container_id est celui que vous avez noté lorsque vous avez démarré la session Docker interactive plus tôt dans ce didacticiel. À moins qu'un autre référentiel ne soit créé sur Docker Hub, le référentiel est généralement le nom d'utilisateur Docker Hub.

Par exemple, pour l'utilisateur sammy et l'ID de conteneur est d9b100f2f636, la commande sera:

docker commit -m "ajouté Node.js" -a "sammy" d9b100f2f636 sammy / ubuntu-nodejs

Lorsque l'image est soumise, la nouvelle image sera enregistrée sur l'ordinateur local. Plus loin dans ce didacticiel, vous apprendrez à pousser une image vers un référentiel Docker tel que Docker Hub afin que d'autres puissent y accéder.

Répertorier l'image Docker affichera la nouvelle image, ainsi que l'ancienne image:

images de docker

Voici le processus de fonctionnement:

leon@ubuntu-s-1vcpu-1gb-tor1-01:~$ docker commit -m "added Node.js" -a "leon" bd612e776819 leon/ubuntu-nodejs
sha256:e5120a19cee69adfa4ea83f9e97934aa0ba33624ce4230b92a999c4cb4d2f75d
leon@ubuntu-s-1vcpu-1gb-tor1-01:~$ docker images
REPOSITORY           TAG       IMAGE ID       CREATED              SIZE
leon/ubuntu-nodejs   latest    e5120a19cee6   About a minute ago   167MB
ubuntu               latest    f63181f19b2f   4 weeks ago          72.9MB
hello-world          latest    bf756fb1ae65   13 months ago        13.3kB
leon@ubuntu-s-1vcpu-1gb-tor1-01:~$

8: Pousser l'image Docker vers le référentiel Docker

Après avoir créé une nouvelle image à partir d'une image existante, l'étape suivante consiste à partager cette image avec des amis, le monde entier sur Docker Hub ou d'autres bibliothèques Docker auxquelles vous avez accès. Pour pousser une image vers Docker Hub ou tout autre registre Docker, vous devez y avoir un compte.

La première étape consiste à vous connecter à votre compte:

connexion docker -u docker-registry-username

Si le nom d'utilisateur et le compte de connexion sont incohérents:

balise docker sammy / ubuntu-nodejs docker-registry-username / ubuntu-nodejs

Puis appuyez sur:

docker push docker-registry-username / docker-image-name
Si le nom d'utilisateur est sammy et que l'image est ubuntu-nodejs, utilisez la commande suivante:

docker push sammy / ubuntu-nodejs

9: Quelques commandes pour Ccontainer et Images

Répertorier tous les ID de conteneur

docker ps -aq

Arrêtez tous les conteneurs

docker stop $ (docker ps -aq)

Supprimer tous les conteneurs

docker rm $ (docker ps -aq)

Supprimer tous les miroirs
docker rmi $ (docker images -q)

Cet article est complété par l'apprentissage de l'  installation et de l'utilisation de Docker sur Ubuntu 20.04  .

Voilà pour l'introduction.

Je suppose que tu aimes

Origine blog.csdn.net/leon_zeng0/article/details/113881191
conseillé
Classement