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 tout fichier de configuration, le Dockerfile a des mots clés qui font des tâches précises :
-
FROM : Définir la base du système. Cela peut être
alpine,python3, où d'autres base Linux - MAINTAINER : Défini l'auteur de l'image
- ENV : Défini des variables d'environnement pour notre conteneur
- LABEL : Donnes des informations sur le conteneur que nous allons créer
- RUN : Exécute des commandes dans le conteneur à la création
- COPY : Copie des fichiers de la machine hôte vers le conteneur
- WORKDIR : Crée un répertoire personnalisé où on peut stocker nos données
- EXPOSE : 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"]
No Comments