Dockerfile
Le fichier Dockerfile est un fichier permettant de créer un conteneur. Il faut que ce fichier soit crée un environnement le plus léger possible et il doit faire une et unique tâche (méthode KISS Linux)
Les mots clés
Comme toutout fichier de configuration, le Dockerfile a des mots clés qui font des tâches précises :
-
FROM :
Permet de déDéfinir la base du système. Cela peut êtrealpine,python3, où d'autres base Linux ENVMAINTAINER :PermetDéfini l'auteur dedéfinirl'image- ENV : Défini des variables d'environnement pour notre conteneur
-
LABEL :
Permet de donnerDonnes des informations sur le conteneur que nous allons créer -
RUN : Exécute des commandes
pourdansinstallerledesconteneurapplicationsà la création - COPY : Copie des fichiers de la machine hôte vers le conteneur
-
WORKDIR
/: Créere un répertoire personnalisé où on peut stocker nos données ENTRYPOINTEXPOSE : Expose un port du conteneur- ENTRYPOINT : Défini les executions
- CMD : Défini la commande à executer par défaut
D'autre mot clé existe mais sont moins courant. Ils sont trouvables ici
Création et execution d'un conteneur
Après avoir créé votre fichier Dockerfile, il faut que vous soyez dans le répertoire de votre Dockerfile.
cd ~/repertoire
il faut ensuite le créer avec la commande build :
docker build -t <nom> .
Et finalement le lancer avec la commande run :
docker run -d [ARGUMENT] <nom>
Exemple de Dockerfile
Service apache
# Utiliser Debian Bookworm Slim comme base
FROM debian:bookworm-slim
# Mettre à jour les paquets et installer Apache
RUN apt-get update && \
apt-get install -y apache2 && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# Ajouter une page index.html personnalisée
COPY index.html /var/www/html/index.html
# Exposer le port 80 pour accéder au service
EXPOSE 80
# Lancer Apache en mode non-détaché
CMD ["apachectl", "-D", "FOREGROUND"]
Service ping
FROM rockylinux:8
MAINTAINER corentin@cclaudel.fr
ENTRYPOINT ["/usr/bin/ping"]
CMD ["www.docker.com"]
Service python
FROM python:3.12
LABEL version 1.0
MAINTENER corentin@cclaudel.fr
ENV BASE_URL=http://127.0.0.1:5000/
WORKDIR /data
COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt
EXPOSE 5000
COPY . .
CMD [ "python3","app.py"]