Aller au contenu principal

install-docker

Comment installer et utiliser Docker sur Ubuntu et Debian

docker Debian

Introduction

Docker est une application qui simplifie le processus de gestion des processus d'application dans les conteneurs. Les conteneurs vous permettent d'exécuter vos applications dans des processus isolés par des ressources. Ils sont similaires aux machines virtuelles, mais les conteneurs sont plus portables, plus conviviaux pour les ressources et plus dépendants du système d'exploitation hôte.

[Intro-install]

Dans ce tutoriel, vous installerez et utiliserez Docker Community Edition (CE) sur Ubuntu et Debian Vous installez Docker lui-même, travaillerez avec des conteneurs et des images, et vous pousserez une image vers un dépôt Docker.

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin des éléments suivants:

  • Un serveur Ubuntu 22.04 mis en place en suivant le guide initial de configuration du serveur Ubuntu 22.04, y compris un sudoun utilisateur non racine et un pare-feu.

  • Un compte sur Docker Hub si vous souhaitez créer vos propres images et les pousser vers Docker Hub, comme le montrent les étapes 7 et 8.

Installation de Docker

Le paquet d'installation Docker disponible dans le dépôt officiel Ubuntu n'est peut-être pas la dernière version. Pour nous assurer que nous obtenons la dernière version, nous allons installer Docker à partir du dépôt officiel Docker. Pour ce faire, nous allons ajouter une nouvelle source de paquet, ajouter la clé GPG de Docker pour s'assurer que les téléchargements sont valides, puis installer le paquet.

Nous commençons par faire un update du système

sudo apt update

Ensuite, installer quelques paquets préparés qui louent apt à utiliser des emballages sur HTTPS:

sudo apt install apt-transport-https ca-certificates curl software-properties-common

Ajoutez ensuite la clé GPG pour le dépôt Docker officiel à votre système:

[OS-Ubuntu]

Si vous êtes sur Ubuntu Liste OS [os-vm] os-docker-download

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

[OS-Debian]

Si vous êtes sur Ubuntu Liste OS [os-vm] os-docker-download

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Ajouter le dépôt Docker aux sources APT:

[ubuntu]

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

[Debian]

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Mettez à nouveau à jour votre liste de paquets existante pour que l'ajout soit reconnu:

sudo apt update

Assurez-vous que vous êtes sur le point d'installer à partir du docker repo à la place du repo Ubuntu par défaut:

apt-cache policy docker-ce

Vous verrez des résultats comme celui-ci, bien que le numéro de version pour Docker puisse être différent:

docker-ce:
Installed: (none)
Candidate: 5:20.10.14~3-0~ubuntu-jammy
Version table:
5:20.10.14~3-0~ubuntu-jammy 500
500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
5:20.10.13~3-0~ubuntu-jammy 500
500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages

[Notez] Docker-cen'est pas installé, mais le candidat à l'installation provient du dépôt Docker pour Ubuntu 22.04.

Enfin installez Docker:

sudo apt install docker-ce

Docker devrait maintenant être installé, le daemon a commencé et le processus a pu démarrer. Vérifiez qu'il est en cours d'exécution:

sudo systemctl status docker

La production devrait être similaire à celle qui suit, montrant que le service est actif et en fonctionnement:

docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-04-01 21:30:25 UTC; 22s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 7854 (dockerd)
Tasks: 7
Memory: 38.3M

L'installation de Docker vous donne maintenant non seulement le service Docker (daemon) mais aussi le docker cli de ligne de commande, ou le client Docker. Nous allons explorer comment utiliser le dockercommander plus loin dans ce tutoriel.

Exécution de la commande Docker sans Sudo (facultatif)

Par défaut, le docker Une commande ne peut être exécutée que l'utilisateur root ou par un utilisateur dans le groupe docker, qui est automatiquement créé pendant le processus d'installation de Docker.

Si vous voulez éviter de taper sudo chaque fois que vous tapez la commande docker, ajouter votre nom d'utilisateur à la docker groups:

sudo usermod -aG docker ${USER}

Pour appliquer la nouvelle composition du groupe, tapez ce qui suit:

Vous serez invité à entrer le mot de passe de votre utilisateur pour continuer.

su - ${USER}

Confirmez que votre utilisateur est maintenant ajouté au groupe docker en tapant :

groups

Si vous avez besoin d'ajouter un utilisateur au docker groupe que vous n'êtes pas connecté, il faut déclarer ce nom d'utilisateur en utilisant explicitement:

username est le nom de l'utilisateur à ajouter.

sudo usermod -aG docker username

Utilisation de la commande Docker

Utilisation docker consiste à lui faire passer une chaîne d'options et de commandes suivies d'arguments. La syntaxe prend cette forme:

docker [option] [command] [arguments]

Pour voir toutes les sous-commandes disponibles, type:

docker

Pour visualiser les options disponibles pour une commande spécifique, tapez:


docker docker-subcommand --help

Pour consulter les informations à l'échelle du système sur Docker, utiliser:

docker info

Travailler avec Docker Images

Les conteneurs Docker sont construits à partir d'images Docker. Par défaut, Docker tire ces images de Docker Hub, un registre Docker géré par Docker, la société derrière le projet Docker. N'importe qui peut héberger ses images Docker sur Docker Hub, donc la plupart des applications et des distributions Linux dont vous aurez besoin auront des images hébergées là-bas.

Pour vérifier si vous pouvez accéder aux images de Docker Hub et les télécharger, tapez:

docker run hello-world

Si vous êtes pas connecter vous pouvez acceder à Docker Hub comme ceci:

docker login -u <username> -p <password>

Docker était initialement incapable de trouver le hello-world image localement, donc il a téléchargé l'image de Docker Hub, qui est le référentiel par défaut. Une fois l'image téléchargée, Docker a créé un conteneur à partir de l'image et de l'application dans le conteneur exécuté, affichant le message.

Vous pouvez rechercher des images disponibles sur Docker Hub en utilisant le dockeravec le commandement avec le search sous-commande. Par example, pour rechercher l'image Ubuntu, tapez:

Le script va explorer Docker Hub et renvoyer une liste de toutes les images dont le nom correspond à la chaîne de recherche.

docker search ubuntu

Une fois que vous avez identifié l'image que vous souhaitez utiliser, vous pouvez la télécharger sur votre ordinateur en utilisant le pullsous-commande.

docker pull ubuntu/nginx

Après qu'une image a été téléchargée, vous pouvez ensuite exécuter un conteneur en utilisant l'image téléchargée avec le run sous-commande.

Pour voir les images qui ont été téléchargées sur votre ordinateur, tapez:

docker images

Exécuter un conteneur Docker

Les conteneurs peuvent être beaucoup plus utiles que cela, et ils peuvent être interactifs. Après tout, elles sont similaires aux machines virtuelles, mais seulement plus conviviales pour les ressources.

Par exemple, faisons fonctionner un conteneur en utilisant la dernière image d'Ubuntu. La combinaison des commutateurs -i et -t vous donne un accès interactif à la coque dans le conteneur:

docker run -it ubuntu/nginx 

Votre demande de commande devrait changer pour refléter le fait que vous travaillez actuellement à l'intérieur du conteneur et que vous devriez prendre cette forme:

Output
root@d9b100f65436:/#

Gestion des conteneurs Docker

Après avoir utilisé Docker pendant un certain temps, vous aurez de nombreux conteneurs actifs (coureurs) et inactifs sur votre ordinateur. Pour voir les actifs, utiliser:

Cette commande vous montre la liste des conteneurs start et ceux qui ne sont pas exécutés

docker ps -a 

Pour voir le dernier conteneur que vous avez créé, passez-le -l commutateur:

docker ps -l

Pour démarrer un récipient arrêté, utiliser docker start, suivis de la carte d’identité du récipient ou du nom du récipient. Commencons le conteneur basé sur Ubuntu avec l'ID de 1c08a7a0d0e4:

docker start 1c08a7a0d0e4

Pour arrêter un conteneur en marche, utiliser docker stop, suivis de l'identifiant ou du nom du conteneur. Cette fois, nous allons utiliser le nom que Docker a attribué le conteneur, qui est dazzling_taussig:

docker stop dazzling_taussig

Une fois que vous avez décidé que vous n'aviez plus besoin d'un conteneur, retirez-le avec le docker rm commande, toujours en utilisant soit l'identifiant du conteneur, soit le nom. Utiliser le docker ps -a pour trouver l'identifiant du conteneur ou le nom du conteneur associé à la hello-worldimage et enlever.

docker rm nom-conteneur

Pour suprimez tous les conteneurs


docker rm -f $(sudo docker ps -a -q)

Faire des changements dans un conteneur à une image Docker

Lorsque vous démarrez une image Docker, vous pouvez créer, modifier et supprimer des fichiers comme vous le pouvez avec une machine virtuelle. Les modifications que vous apportez ne s'appliqueront qu'à ce conteneur.

Vous pouvez commencer et l'arrêter, mais une fois que vous le détruisez avec le docker rm commande, les changements seront perdus pour de bon.

Cette section vous montre comment sauvegarder l'état d'un conteneur en tant que nouvelle image Docker.

[exemple]

Après avoir installé Node.js à l'intérieur du conteneur Ubuntu, vous avez maintenant un conteneur qui exécute une image, mais le conteneur est différent de l'image que vous avez utilisée pour le créer. Mais vous voudrez peut-être réutiliser ce conteneur Node.js comme base pour de nouvelles images plus tard.

Engagez ensuite les modifications à une nouvelle instance d'image Docker en utilisant la commande suivante.

docker commit -m "What you did to the image" -a "Author Name" container_id repository/new_image_name

-m pour les messages de validation qui vous aide, vous et les autres à savoir quelles modifications vous avez apportées. -a est utilisé pour spécifier l'auteur. container_id est celui que vous avez lancer comme conteneur. repository est également votre utilisateur Docker Hub

Par example, pour le sammyeur de l'utilisateur, avec l'identifiant de l'utilisateur d9b100f2f636, le commandement serait:

docker commit -m "added Node.js" -a "sammy" d9b100f2f636 mekoo/ubuntu-nodejs

L'inscription des images Docker à nouveau montrera la nouvelle image, ainsi que l'ancienne dont elle a été dérivée:

docker images

Dans cet exemple, ubuntu-nodejsest la nouvelle image, qui a été dérivée de la ubuntu image de Docker Hub. La différence de taille reflète les changements qui ont été apportés. Et dans cet exemple, le changement a été que NodeJS a été installé. Donc la prochaine fois que vous devez faire fonctionner un conteneur en utilisant Ubuntu avec NodeJS pré-installé, vous pouvez simplement utiliser la nouvelle image.

Vous pouvez aussi construire des images à partir d'un Dockerfile, qui vous permet d'automatiser l'installation du logiciel dans une nouvelle image.

Pousser des images Docker à un dépôt de Docker

L'étape logique suivante après avoir créé une nouvelle image à partir d'une image existante est de la partager avec quelques-uns de vos amis, le monde entier sur Docker Hub, ou un autre registre Docker auquel vous avez accès. Pour pousser une image vers Docker Hub ou tout autre registre Docker, vous devez avoir un compte là-bas.

Lorsque vous commettez une image, la nouvelle image est sauvegardée localement sur votre ordinateur.

Plus tard dans ce tutoriel, vous apprendrez comment pousser une image vers un registre Docker comme Docker Hub afin que d'autres puissent y accéder.

[Step] Pour pousser votre image, connectez-vous d'abord à Docker Hub.

docker login -u docker-registry-username -p password

Vous serez invité à vous authentifier en utilisant votre mot de passe Docker Hub. Si vous avez spécifié le mot de passe correct, l'authentification doit réussir.

[remarque] Si votre nom d'utilisateur de registre Docker est différent du nom d'utilisateur local que vous avez utilisé pour créer l'image, vous devrez étiqueter votre image avec votre nom d'utilisateur de registre. Pour l'exemple donné à la dernière étape, vous taperiez:

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

Ensuite, vous pouvez pousser votre propre image en utilisant:

docker push docker-registry-username/docker-image-name

Pour pousser le ubuntu-nodejs image au référentiel mekodocker, la commande serait:

docker push mekodocker/ubuntu-nodejs

Après avoir poussé une image vers un registre, il devrait être listé sur le tableau de bord de votre compte, comme cela montre dans l'image ci-dessous.

Vous pouvez maintenant utiliser docker pull mekodocker/ubuntu-nodejs pour tirer l'image sur une nouvelle machine et l'utiliser pour faire fonctionner un nouveau récipient.

Conclusions

Dans ce tutoriel, vous avez installé Docker, travaillé avec des images et des conteneurs, et poussé une image modifiée vers Docker Hub. Maintenant que vous connaissez les bases Site du groupe meko-digital