Skip to main content

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"]