Dockerfile
Image source :
FROM ubuntu:18.04
Ecouter sur un port :
EXPOSE 80
Ajouter des métadonnées :
LABEL "relase-date=20201115"
Lancer une commande :
RUN apt-get update && \ apt-get dist-upgrade
Commande par défaut du conteneur :
CMD ["commande", "arg1", "arg2"]
Déclarer une variable d’environnement :
ENV APACHE_HTTP_PORT_NUMBER=8080
Ajouter un fichier :
COPY requirements.txt /tmp
Commande de lancement du conteneur :
ENTRYPOINT ["commande", "arg1", "arg2"]
Exposer un volume pour du stockage persistant :
VOLUME ["/data/myapp"]
Lancement sur un compte non privilégié :
USER uid
Changement du répertoire courant :
WORKDIR /opt/myapp
Docker CLI : images
Construire une image depuis un Dockerfile :
docker build -t nom/app:0.0.1 -t nom/app:latest .
Chercher une image :
docker search postfix
Télécharger une image :
docker pull php
Mettre à jour toutes les images :
docker pull
Lister les images :
docker image [-a]
Supprimer une image :
docker rmi [ID | repository/tag]
Docker CLI : Conteneurs
Créer un conteneur :
docker create -d -p 80:80 -n apacheserver -v "/localpath:/containerpath" httpd:2.4
Démarrer un conteneur :
docker start NOM
Créer et démarrer un conteneur
docker run -dit -p 80:80 -n apacheserver -v "/localpath:/containerpath" httpd:2.4
Lister les conteneurs lancés :
docker ps
Lister tous les conteneurs :
docker ps -a
Démarrer un conteneur :
docker start conteneur
Arrêter un conteneur :
docker stop conteneur
Arrêter tous les conteneurs démarrés :
docker stop $(docker ps -a -q)
Lancer une commande dans un conteneur :
docker exec -it conteneur
Ouvrir une session dans un conteneur :
docker exec -it conteneur bash
Démarrer un conteneur avec une restart policy :
docker run -d --restart [no,on-failure,always,unless-stopped] conteneur
Placer une restart policy sur un conteneur démarré :
docker update --restart [no,on-failure,always,unless-stopped] conteneur
Visualiser les logs :
docker logs conteneur
Docker CLI : nettoyage
Supprimer toutes les images :
docker image prune -a
Supprimer tous les conteneurs éteints :
docker container prune
Supprimer tous les volumes :
docker volume prune
Supprimer toute image, conteneur, volume inutilisé :
docker system prune -a