Docker est une plate-forme de conteneurisation open source pour la création, l'empaquetage et l'exécution d'applications. Il fournit un moyen léger, portable et évolutif de regrouper une application et toutes ses dépendances dans un conteneur autonome. Ce qui suit est un guide d'utilisation destiné aux novices de Docker pour vous aider à comprendre les concepts de base et les étapes de fonctionnement de Docker.
Installer Docker
Avant de commencer, vous devez d'abord installer Docker sur votre système d'exploitation. Docker prend en charge plusieurs systèmes d'exploitation, notamment Linux, macOS et Windows. Voici les guides d'installation de Docker pour différents systèmes d'exploitation :
Installation Debian
Vous pouvez installer Docker sur les systèmes Debian en suivant les étapes fournies dans la documentation officielle de Docker. Lien vers la documentation : https://docs.docker.com/engine/install/debian/
Installation CentOS
Si vous utilisez un système CentOS, vous pouvez l'installer selon les étapes fournies dans la documentation officielle de Docker. Lien vers la documentation : https://docs.docker.com/engine/install/centos/
Une fois l'installation terminée, vous pouvez vérifier si Docker a été installé avec succès en exécutant la commande suivante :
docker version
Si tout va bien, vous devriez pouvoir voir les informations de version sur le client et le serveur Docker.
Concepts de base de Docker
Avant de commencer à utiliser Docker, plusieurs concepts de base doivent être compris :
-
Image : Une image est un modèle en lecture seule utilisé pour créer des conteneurs Docker. Il contient tous les fichiers, bibliothèques et dépendances nécessaires à l'exécution de l'application. Vous pouvez créer votre propre image ou obtenir une image prête à l'emploi à partir de Docker Hub ou d'autres référentiels d'images.
-
Conteneur : Un conteneur est une instance en cours d'exécution créée par une image. Il peut être démarré, arrêté, supprimé et déplacé. Les conteneurs sont des environnements d'exécution autonomes et isolables dans lesquels les applications peuvent s'exécuter indépendamment du système hôte.
-
Dockerfile : Un Dockerfile est un fichier texte qui contient une série d'instructions et de configurations pour créer une image de conteneur. En écrivant un Dockerfile, vous pouvez définir l'environnement d'exécution, les dépendances et d'autres configurations de l'application.
-
Dépôt : Le référentiel est un endroit utilisé pour stocker et distribuer des images Docker. Docker Hub est le référentiel public le plus populaire où vous pouvez obtenir différents types d'images. Vous pouvez également créer votre propre référentiel privé pour gérer vos propres images.
Fabriquer un miroir
Créer une image est une étape importante dans l'utilisation de Docker. Vous pouvez définir le processus de création d'image et la configuration en écrivant un Dockerfile.
https://docs.docker.com/engine/reference/builder/
Structure du répertoire :
.
├── AppRun
├── default.desktop
├── default.png
├── doc
│ ├── libdbus-1-3
│ │ └── copyright
│ ├── libkeyutils1
│ │ └── copyright
│ ├── liblzma5
│ │ └── copyright
│ └── libpcre3
│ └── copyright
├── Dockerfile
├── lib
│ ├── libdbus-1.so.3
│ ├── libgcrypt.so.20
│ ├── libglib-2.0.so.0
│ ├── libgssapi_krb5.so.2
│ ├── libgthread-2.0.so.0
│ ├── libicudata.so.56
│ ├── libicui18n.so.56
│ ├── libicuuc.so.56
│ ├── libk5crypto.so.3
│ ├── libkeyutils.so.1
│ ├── libkrb5.so.3
│ ├── libkrb5support.so.0
│ ├── liblz4.so.1
│ ├── liblzma.so.5
│ ├── libpcre.so.3
│ ├── libQt5Core.so.5
│ ├── libQt5DBus.so.5
│ ├── libQt5Network.so.5
│ ├── libsystemd.so.0
│ └── libzstd.so.1
├── AppName
├── plugins
│ └── bearer
│ ├── libqconnmanbearer.so
│ ├── libqgenericbearer.so
│ └── libqnmbearer.so
├── qt.conf
├── .dockerignore
├── sources.list
└── translations
└── qt_en.qm
Voici un exemple simple de Dockerfile :
FROM debian:bullseye
COPY sources.list /etc/apt
ENV DEBIAN_FRONTEND=noninteractive
WORKDIR /usr/local/bin/app
COPY . /usr/local/bin/app
RUN /bin/chmod +x /usr/local/bin/app/AppName
CMD ["./AppName"]
Il s'agit d'un simple Dockerfile utilisé pour créer un conteneur basé sur l'image Debian Bullseye. Vous trouverez ci-dessous une explication de chaque directive :
-
FROM debian:bullseye
: Spécifie l'image de base comme Debian Bullseye. Il servira d’environnement initial requis pour la construction. -
COPY sources.list /etc/apt
: Copiez les fichiers de l'hôtesources.list
vers le/etc/apt
répertoire du conteneur.sources.list
Il s'agit d'un fichier utilisé pour configurer la source du progiciel dans le système Debian. Il est copié dans le conteneur pour l'installation ultérieure du progiciel. -
ENV DEBIAN_FRONTEND=noninteractive
DEBIAN_FRONTEND
: Définissez la valeur d' une variable d'environnement sur non interactive. Ce paramètre de variable d'environnement peut effectuer des processus d'installation ultérieurs de progiciels sans interaction homme-machine et éviter les invites interactives. -
WORKDIR /usr/local/bin/app
: Spécifie le répertoire de travail du conteneur/usr/local/bin/app
. Les instructions suivantes seront exécutées dans ce répertoire. -
COPY . /usr/local/bin/app
: Copie tous les fichiers et dossiers du répertoire hôte actuel dans le répertoire du conteneur/usr/local/bin/app
. Cela inclura tout ce qui se trouve dans le répertoire où se trouve le Dockerfile. -
RUN /bin/chmod +x /usr/local/bin/app/AppName
: Exécutez la commande dans le conteneur/bin/chmod +x /usr/local/bin/app/AppName
./usr/local/bin/app/AppName
Cette commande ajoute des autorisations exécutables aux fichiers du conteneur . -
CMD ["./AppName"]
: Définissez la commande par défaut lors du démarrage du conteneur./AppName
. Cela exécutera le fichier exécutable à l'intérieur du conteneur./AppName
.
Dans l'ensemble, la fonction de ce Dockerfile est de créer un conteneur basé sur l'image Debian Bullseye et sources.list
de copier les fichiers de l'hôte vers le conteneur pour configurer la source du package. Il définit ensuite le répertoire de travail sur celui-ci /usr/local/bin/app
, copie tous les fichiers et dossiers de l'hôte vers ce répertoire du conteneur et ajoute des AppName
autorisations exécutables aux fichiers du conteneur. Enfin, au démarrage du conteneur, ./AppName
l'exécutable sera exécuté comme commande par défaut.
Notez que la commande COPY ne peut copier que les fichiers du répertoire actuel et des sous-répertoires du Dockfile, les
/etc/apt/sources.list
fichiers système sont donc copiés ici à l'avance.
Pour créer l'image, vous pouvez utiliser la commande suivante :
docker build -t image-name:tag .
Parmi eux, -t
les paramètres précisent le nom et le label de l'image, .
indiquant le répertoire actuel où se trouve le Dockerfile. Le processus de construction sera exécuté étape par étape selon les instructions du Dockerfile et l'image sera générée.
Une fois l'image construite, vous pouvez utiliser la commande suivante pour afficher la liste des images construites :
docker images
Vous pouvez désormais utiliser cette image pour créer et exécuter des conteneurs.
Créer et exécuter des conteneurs
Pour créer un conteneur, vous pouvez utiliser la commande suivante :
docker run -d --name container-name -p host-port:container-port image-name:tag
Parmi eux, -d
le paramètre indique que le conteneur s'exécute en arrière-plan, --name
le paramètre spécifie le nom du conteneur, -p
le paramètre spécifie la relation de mappage entre le port hôte et le port du conteneur, image-name:tag
et est le nom de l'image et l'étiquette que vous souhaitez utiliser. .
Si vous devez redémarrer automatiquement le conteneur, vous pouvez
docker run -d --name container-name -p host-port:container-port image-name:tag
ajouter les instructions suivantes à la fin.
--restart=always
: Cette option indique à Docker de redémarrer automatiquement le conteneur à sa sortie. Que le conteneur soit arrêté manuellement ou qu'une erreur se produise entraînant la fermeture du conteneur, Docker tentera de redémarrer le conteneur.
Après avoir exécuté le conteneur, vous pouvez utiliser la commande suivante pour afficher la liste des conteneurs en cours d'exécution :
docker ps
Si vous souhaitez accéder à la borne interactive du conteneur, vous pouvez utiliser la commande suivante :
docker exec -it container-name /bin/bash
où container-name
est le nom du conteneur.
Pour arrêter et supprimer un conteneur, vous pouvez utiliser les commandes suivantes :
docker stop container-name
docker rm container-name
Ces commandes arrêteront le conteneur et supprimeront l'instance de conteneur.
Exporter et importer des images
Si vous devez transférer une image d'un environnement à un autre, vous pouvez utiliser les méthodes d'exportation et d'importation.
Exporter l'image
Exportez l'image dans un fichier à l'aide de la commande suivante :
docker save -o appname_image.tar appname:latest
Cette commande appname_image:latest
exportera l'image nommée vers appname_image_image.tar
un fichier nommé .
Importer une image
Utilisez la commande suivante pour importer un fichier image :
docker load -i appname_image.tar
Cette commande appname_image.tar
chargera l'image à partir d'un fichier nommé.
Il s'agit de directives d'utilisation de base pour Docker qui, espérons-le, vous aideront à démarrer avec Docker et à commencer à utiliser la conteneurisation pour créer et déployer des applications. En utilisant Docker, vous pouvez gérer plus facilement les dépendances des applications, les environnements de déploiement et les configurations en cours d'exécution. Si vous souhaitez en savoir plus sur davantage de fonctions et sur l'utilisation avancée de Docker, vous pouvez vous référer à la documentation officielle de Docker ou à d'autres ressources connexes.