Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
13 mars 2016

docker containers lxc           Isolation


Dockerfile

Dockerfile

Automatiser la création d'image Docker

   Le fichier Dockerfile est un fichier de configuration qui automatise les étapes de création d'une image Docker. C'est similaire à un Makefile. Docker lit les instructions du fichier Dockerfile et automatise les étapes pour créer l'image. Pour construire une image, créer un fichier appelé Dockerfile. Utiliser ensuite docker build en utilisant le chemin du répertoire qui contient le Dockerfile comme argument.

Format

FROM image
FROM image:tag
FROM image@digest Le jeu d'instructions FROM définis l'image de base pour les instructions suivantes. Un Dockerfile valide doit avoir l'instruction FROM en premier.

        - FROM doit être la première instruction dans le Dockerfile
        - FROM peut apparaître plusieurs fois dans un Dockerfile
        - Si aucun tag n'est donné, Docker applique le tag latest, s'il n'existe pas, retourne une erreur
        - Si aucun hash n'est donné, Docker applique le tag latest, s'il n'existe pas, retourne une erreur

MAINTAINER Définis l'auteur pour les images générées. Utile pour fournir une URL ou un email
RUN ‹command›
RUN ["executable", "param1", "param2"] Éxécuter des commandes dans une nouvelle couche en haut de l'image courante et retourne le résultat.
CMD ["executable", "param1", "param2"]`
CMD ["param1", "param2"]`
CMD command param1 param2 Il devrait y avoir seulement un CMD dans un Dockerfile. Fournis des défauts pour un conteneur. Ces défauts peuvent inclure un exécutable. Si omis, un ENTRYPOINT doit être spécifié.
LABEL ‹key›=‹value› [‹key›=‹value› ...]
LABEL ‹key›[ ‹value›] Ajoute des métadonnées à une image. Un label est une paire de clé/valeur.
EXPOSE ‹port› [‹port›...] Informe Docker que le conteneur écoute sur des ports réseaux spécifiés. Docker utilise cette information pour interconnecter les conteneurs en utilisant des liens et pour définir les redirections de port dans le système hôte.
ENV ‹key› ‹value› Définis des variables d'environnement
ADD ‹src› ‹dest›
ADD ["‹src›",... "‹dest›"] Permet de copier des fichiers et répertoires
COPY ‹src› ‹dest›
COPY ["‹src›",... "‹dest›"] Permet de copier des fichiers dans le système de fichier du conteneur.
ENTRYPOINT ["executable", "param1", "param2"]`
ENTRYPOINT command param1 param2 Permet de configurer un conteneur qui peut être lancé comme un exécutable.
VOLUME ["/data"] Créé un point de montage avec le nom spécifié et le marque comme volume monté en interne.
USER daemon Définis le username ou UID à utiliser pour les commandes suivantes.
WORKDIR /path/to/workdir Définis le répertoire courant de travail.
ARG ‹name›[=‹default value›] Définis une variable que les utilisateurs peuvent passer au builder avec docker build --build-arg.
ONBUILD [INSTRUCTION] Ajoute une instruction déclencheur à une image. Le trigger est exécuté à la fin, quand l'image est utilisée comme base pour un autre build. Docker exécute le trigger dans le contexte du flux de build, comme s'il existait immédiatement après l'instruction FROM.