How-To : Créer un Container sous Docker

Dans ce tuto nous allons fournir un bref aperçu de la relation entre les images Docker et les conteneurs Docker. Ensuite, nous examinerons plus en détail comment exécuter, démarrer, arrêter et supprimer des conteneurs.

Si vous n'avez pas déjà  installé Docker sur votre système, vous devez le faire. Pour cela vous pouvez suivre les instructions d'installation appropriées pour votre système d'exploitation sur le site officiel de Docker 

1ère Possibilité  : Créer un container en utilisant la commande "docker run"

La commande docker run suivante créera un nouveau conteneur à l’aide de l’image Ubuntu de base. -t nous donnera un terminal, et -i nous permettra d’interagir avec lui. 

Nous nous appuierons sur la commande par défaut dans le fichier Docker de l’image de base Ubuntu, bash, pour nous déposer dans un shell.

root@bumblebee:~# docker run -ti ubuntu

L’invite de ligne de commande change pour indiquer que nous sommes à l’intérieur du conteneur en tant qu’utilisateur root, suivi de l’ID du conteneur à 12 caractères.

root@800cf2b98f39:/# 

Nous allons faire une modification en faisant écho à du texte dans le répertoire /tmp du conteneur, puis utiliser cat pour vérifier qu’il a bien été enregistré.

root@800cf2b98f39:/# echo "Example1" > /tmp/Example1.txt
root@800cf2b98f39:/# cat /tmp/Example1.txtExample1
root@800cf2b98f39:/# exit

La commande exit permet de sortir du container

Si nous exécutons docker ps, la commande affichera les conteneurs en cours d’exécution :

root@bumblebee:~# docker ps
CONTAINER ID   IMAGE     COMMAND                     CREATED   STATUS    PORTS       NAMES
4e44017182e4   bash      "docker-entrypoint.s…"   5 days ago   Up 5 days       dazzling_ritchie

Si nous ajoutons l’option -a, cette commande affiche tous les conteneurs, arrêtés ou en cours d’exécution

root@bumblebee:~# docker ps -a

Pour redémarrer un conteneur existant, nous allons utiliser la commande start avec l’indicateur -a pour l’attacher et l’indicateur -i pour le rendre interactif, suivi de l’ID ou du nom du conteneur. 

Assurez vous de remplacer l’ID de votre conteneur dans la commande ci-dessous :

root@bumblebee:~# docker start -ai 800cf2b98f39
root@800cf2b98f39:/# 

Nous nous retrouvons à l’invite bash du conteneur une fois de plus et lorsque nous faisons un cat du fichier que nous avons précédemment créé, il est toujours là.

root@800cf2b98f39:/# cat /tmp/Example1.txt
Example1

Pour supprimer le container la commande docker rm,  fonctionne que sur les conteneurs arrêtés. Elle permet de spécifier le nom ou l’ID d’un ou plusieurs conteneurs, afin que nous puissions les supprimer avec ce qui suit :

root@bumblebee:~# docker stop 800cf2b98f39800
cf2b98f39
root@bumblebee:~# docker rm 800cf2b98f39
800cf2b98f39

On peux faire un docker ps -a pour valider la bonne suppression


2ème Possibilité  : Créer un container en écrivant un "Dockerfile" : 

Un Dockerfile est un fichier texte qui contient des instructions pour construire une image Docker. Vous pouvez créer un fichier Dockerfile à l'aide d'un éditeur de texte. Voici un exemple simple de Dockerfile pour une application web Node.js : 

# Utilisez une image de base Node.js
FROM node:14
# Définissez le répertoire de travail dans le conteneur
WORKDIR /app
# Copiez le package.json et le package-lock.json dans le conteneur
COPY package*.json ./
# Installez les dépendances
RUN npm install
# Copiez le reste des fichiers de l'application
COPY . .
# Exposez le port sur lequel l'application écoute
EXPOSE 3000
# Commande pour démarrer l'application
CMD ["node", "app.js"]

Construire l'image Docker : Utilisez la commande docker build pour créer une image à partir du Dockerfile. Assurez-vous de vous trouver dans le répertoire contenant le Dockerfile, puis exécutez la commande suivante : 

docker build -t mon-application:1.0 . 

Cela crée une image nommée "mon-application" avec l'étiquette "1.0".

Exécution du conteneur : Pour exécuter un conteneur à partir de l'image que vous avez construite, utilisez la commande docker run :

arduinodocker run -p 8080:3000 mon-application:1.0

Cela exécute l'application dans le conteneur et mappe le port 3000 du conteneur sur le port 8080 de votre système hôte.

Gestion des conteneurs Docker : Vous pouvez lister, arrêter, redémarrer et supprimer des conteneurs à l'aide des commandes docker ps, docker stop, docker restart et docker rm.

C'est une procédure de base pour créer et exécuter un conteneur Docker. Vous pouvez personnaliser davantage le processus en fonction de vos besoins spécifiques, mais ces étapes couvrent les bases.