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