Outils pour utilisateurs

Outils du site


docker

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
docker [2020/06/23 21:04]
luc
docker [2020/06/23 21:19] (Version actuelle)
luc
Ligne 13: Ligne 13:
  
 ===== Concept ===== ===== Concept =====
-On peut créer des containers (ou les récupérer via une sorte de store/repo).\+Il faut différencier les images et les containers. L'image est comme un DVD/.iso, le container est l'image installée pour être executée. 
 + 
 +On peut créer des containers (à partir de notre propre travail ou d'une image récupérée sur le Hub).\
 On peut démarrer des containers.\ On peut démarrer des containers.\
 On peut arrêter des containers. On peut arrêter des containers.
  
 Ces containers contiennent l'application et l'environnement nécessaire (choisi par le dev) pour le faire tourner.  Ces containers contiennent l'application et l'environnement nécessaire (choisi par le dev) pour le faire tourner. 
 +
  
 ===== Commandes Docker ===== ===== Commandes Docker =====
 Pour l'usage simple que j'en ai, on pilote docker via la cli Pour l'usage simple que j'en ai, on pilote docker via la cli
 +
 +De base la commande Docker s'execute en root
 +
 <code bash> <code bash>
 ### DOCKER RUN ### DOCKER RUN
 # créer et démarrer un container # créer et démarrer un container
 docker run -p 8080:80 -v ~/projet/etc:/etc/mon_projet -d --name POUPETTE <image> docker run -p 8080:80 -v ~/projet/etc:/etc/mon_projet -d --name POUPETTE <image>
-# <image> : si l'image n'est pas déjà présente, la télécharge (sur le Docker Hub)+
 # /!\ la commande ne rend la main QUE lorsque tous les process à l'intérieur du container sont éteints. ça peut bloquer le prompt # /!\ la commande ne rend la main QUE lorsque tous les process à l'intérieur du container sont éteints. ça peut bloquer le prompt
 # options utiles : # options utiles :
--d +#-d 
-   detachrun le container en background (non bloquant sur la cli, et ça c'est bien) +#    (detachrun le container en background (non bloquant sur la cli, et ça c'est bien) 
--v /path/to/host:/path/inside/container +#-v /path/to/host:/path/inside/container 
-   (volume) crée un bind entre un dossier sur le système de fichier de l'hôte et le système de fichier du container, utile pour la persistance de données et/ou le backup +#    (volume) crée un bind entre un dossier sur le système de fichier de l'hôte et le système de fichier du container, 
--p host:container +#    utile pour la persistance de données et/ou le backup 
-   fait un renvoi des ports de l'host vers le container (utile si plusieurs containers servent du web, chacun sur le port 80 par exemple) +#-p host:container 
---name NOM +#    fait un renvoi des ports de l'host vers le container (utile si plusieurs containers servent du web, chacun sur le port 80 par exemple) 
-   pour nommer le container que l'on crée+#--name NOM 
 +#    pour nommer le container que l'on crée 
 +# -e ENV_VARIABLE=value 
 +#    Passer des variables env au container lors de sa création 
 +# <image> 
 +#    nom de l'image pour laquelle il faut créer un container 
 +#    si l'image n'est pas déjà présente, la télécharge (sur le Docker Hub)
  
-### DOCKER CREATE : crée un container sans le démarrer 
  
-### DOCKER START démarre un container déjà créé+### DOCKER CREATE 
 +# crée un container sans le démarrer 
 + 
 + 
 +### DOCKER START 
 +démarre un container déjà créé
 docker start <ID> docker start <ID>
 +
 #est-ce que ça marche avec le name ? à tester #est-ce que ça marche avec le name ? à tester
  
-### DOCKER STOP arrête un container+ 
 +### DOCKER STOP 
 +arrête un container
 docker stop <ID> docker stop <ID>
  
-### DOCKER PS : liste les containers+ 
 +### DOCKER PS
 # liste les containers actifs (run) # liste les containers actifs (run)
 docker ps  docker ps 
 +
 # liste tous les containers # liste tous les containers
 docker ps -a docker ps -a
  
-### DOCKER RM supprimer des containers + 
-docker rm <ID>  +### DOCKER RM 
 +supprimer des containers
 # on peut récupérer les id avec 'docker ps' # on peut récupérer les id avec 'docker ps'
 +docker rm <ID>  
 +
  
-### DOCKER IMAGES lister les images+### DOCKER IMAGES 
 +lister les images
 # car plusieurs container peuvent être réalisés à partir d'une même image # car plusieurs container peuvent être réalisés à partir d'une même image
 # ou avoir plusieurs versions # ou avoir plusieurs versions
 # c'est un cache de DL des images en fait :) # c'est un cache de DL des images en fait :)
 docker images docker images
 +
 +
 +### DOCKER RMI
 +# supprimer les images (et pas les containers)
 +# il ne doit plus y avoir de container faisant référence à cette image
 +
  
 ### DOCKER SEARCH  ### DOCKER SEARCH 
Ligne 66: Ligne 97:
 </code> </code>
  
 +===== Recommandations =====
 +
 +Ci dessous un recueil de recommandations lues ici ou là, à méditer, à approfondir au besoin :
 +
 +  * Ne pas utiliser Docker au sein d'un autre système de container style LXC, si besoin d'isolation particulière au sein du système hôte, il vaut mieux créer une VM
 +  * Mieux vaut ne pas gérer les auto-start & co via systemd et consorts. Il vaudrait mieux passer directement par l'interface Docker. Comment ? à creuser
 +  * Les docker-files sont parait-il hyper bien, mais je ne sais pas ce dont il s'agit (un système pour ne pas avoir des cli ultralongues et ainsi éviter les typo ?)
 +  * ''docker run'' ne rend la main (prompt) que lorsqu'il n'y a plus de process actif dans le container (/!\ serveur web attendant des connexions), penser à utiliser --detach
docker.1592946294.txt.gz · Dernière modification: 2020/06/23 21:04 de luc