Menu

Docker

Docker

Bien differencier image et conteneur

Lancer une image créera un nouveau conteneur

Supprimer un conteneur ne supprimera pas l'image

Une image est unique mais peut être dans plusieur conteneur

1# Voir toutes les images 2docker images 3 4# Pour voir les conteneur en fonctionnement 5docker ps 6 7# Pour voir les conteneur qui on été crée 8docker ps -a 9 10# Récuperer tout les id des conteneur actifs ou non 11docker ps -aq 12 13# Installer puis lancer une image 14docker run "nom-de-l'image" 15 16# Installer puis lancer une image et la supprimer dès qu'elle a fini 17docker run --rm "nom-de-l'image" 18 19# Pour exécuter une commande dans un conteneur 20docker run --rm ubuntu:latest cat /etc/-os-release 21 22# Le flag "-d" pour exécuter les conteneur en tache de fond 23docker run --rm -d ubuntu:latest cat /etc/-os-release 24 25# On exécute un conteneur dans le background, avec le flag "i-", il est toujours allumé. 26docker run --rm -di ubuntu:latest /bin/bash 27 28# Le flag `i` nous connecte à la machine, le flag `t` va permettre d'exécuter des commandes `bash` 29docker exec -it "nom-du-conteneur" bash 30 31# Pour demarer un conteneur 32docker start "nom-conteneur" 33 34# Pour arrêter un conteneur 35docker stop "nom-conteneur" 36 37# Supprimer une image 38docker rmi "id-de-l'image" 39 40# Pour supprimer un conteneur 41docker rm "conteneur-id" 42 43# Pour supprimer tout les conteneur inactifs 44docker rm $(docker ps -aq) 45 46# Pour suprimer tout les conteneur actifs ou non 47docker rm -f $(docker ps -aq) 48 49# Pour effacer tout ce qui sert à rien (ça fait un reset) 50docker system prune 51 52# Contruire une image avec un tagname json-server et sans le cache, pour avoir une image fraîche 53docker build . --no-cache -t "nom-du-server" 54 55# Pour exécuter notre image, en exposant le port 3000 du conteneur au port 3000 de la VM hôte. 56# Le premier 3000 est le port de l'hôte. 57docker run --rm -p 3000:3000 "nom-du-server" 58

Sur un fichier Dockfile

Ce fichier doit être accompagneé de fichiers .json qui comprennent les données à export sur docker

1# On installe une image et on la modifie pour créer notre image custom et la rendre dispo partout grâce à docker 2 3# Cette image contient un OS avec nodejs et npm installés 4FROM node:latest 5 6# On indique le répertoire dans lequel nous allons travailler à l'intérieur du conteneur 7WORKDIR /home/server 8 9# On dit à notre conteneur d'installer json-server globalement 10RUN npm install -g json-server 11 12# On envoie les fichiers `db.json` et `db-copy.json` sur le conteneur 13COPY db.json /home/server/db.json 14COPY db-copy.json /home/server/db-copy.json 15 16# Une fois lancé le conteneur exécute la commande ci-dessous 17# Elle indique que le server sera sur les ports 0.0.0.0 et qu'il enverra ses données sur le port 3000 18ENTRYPOINT ["json-server", "--port", "3000" ,"--host", "0.0.0.0"] 19 20# Le conteneur exécute par défaut db.json 21# Pour exécuter la copy il faut relancer le server et taper `docker run --rm -p 3000:3000 jsonserver db-copy.json` 22CMD ["db.json"] 23