Outils pour utilisateurs

Outils du site


systeme: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édentesRévision précédente
Prochaine révision
Révision précédente
systeme:docker [2016/10/31 10:54] – [Commandes docker swarm] rootsysteme:docker [2018/02/23 21:27] (Version actuelle) root
Ligne 29: Ligne 29:
   * [[https://docs.docker.com/engine/security/https/|Chiffrement]]   * [[https://docs.docker.com/engine/security/https/|Chiffrement]]
   * [[https://docs.docker.com/engine/security/apparmor/|AppArmor]]   * [[https://docs.docker.com/engine/security/apparmor/|AppArmor]]
 +
 +Activation namespace user pour remappinf des uid entre le conteneur et la machine hôte avec : **userns-remap** :
 +  * https://resinfo.org/IMG/pdf/secu-docker.pdf
 +  * https://resourcepool.io/fr/2016/09/09/francais-le-user-namespace-dans-docker/
  
 ===== Plugins ===== ===== Plugins =====
Ligne 47: Ligne 51:
 [[https://docs.docker.com/engine/reference/commandline/|Toutes les commandes]] [[https://docs.docker.com/engine/reference/commandline/|Toutes les commandes]]
  
-==== run ====+==== docker run ====
 [[https://docs.docker.com/engine/reference/commandline/run/|Crée et démarre un conteneur à partir d'une image]] : [[https://docs.docker.com/engine/reference/commandline/run/|Crée et démarre un conteneur à partir d'une image]] :
  
Ligne 93: Ligne 97:
 $ docker run -t -i --rm --link db:db training/webapp /bin/bash $ docker run -t -i --rm --link db:db training/webapp /bin/bash
 </xtermrtf> </xtermrtf>
-==== create ====+ 
 +==== docker create ====
 [[https://docs.docker.com/engine/reference/commandline/create/|Crée un nouveau conteneur à partir d'une image sans le démarrer]] : [[https://docs.docker.com/engine/reference/commandline/create/|Crée un nouveau conteneur à partir d'une image sans le démarrer]] :
  
Ligne 102: Ligne 107:
 </xtermrtf> </xtermrtf>
  
-==== attach ====+==== docker attach ====
 [[https://docs.docker.com/engine/reference/commandline/attach/|Interagit avec le processus du conteneur]] : [[https://docs.docker.com/engine/reference/commandline/attach/|Interagit avec le processus du conteneur]] :
  
Ligne 113: Ligne 118:
 </xtermrtf> </xtermrtf>
  
-==== images ====+==== docker images ====
 [[https://docs.docker.com/engine/reference/commandline/images/|Liste les images]] : [[https://docs.docker.com/engine/reference/commandline/images/|Liste les images]] :
  
Ligne 128: Ligne 133:
 </xtermrtf> </xtermrtf>
  
-==== diff ====+==== docker diff ====
 [[https://docs.docker.com/engine/reference/commandline/diff/|Affiche les différences entre le conteneur et son image]] : [[https://docs.docker.com/engine/reference/commandline/diff/|Affiche les différences entre le conteneur et son image]] :
  
Ligne 139: Ligne 144:
   * **C** : Change   * **C** : Change
  
-==== history ====+==== docker history ====
 [[https://docs.docker.com/engine/reference/commandline/history/|Affiche l'historique d'une image]] : [[https://docs.docker.com/engine/reference/commandline/history/|Affiche l'historique d'une image]] :
  
Ligne 146: Ligne 151:
 </xtermrtf> </xtermrtf>
  
-==== tag ====+==== docker tag ====
 [[https://docs.docker.com/engine/reference/commandline/tag/|Tag une image]] : [[https://docs.docker.com/engine/reference/commandline/tag/|Tag une image]] :
 <xtermrtf> <xtermrtf>
Ligne 156: Ligne 161:
 </xtermrtf> </xtermrtf>
  
-==== rename ====+==== docker rename ====
 [[https://docs.docker.com/engine/reference/commandline/rename/|Renomme un conteneur]] : [[https://docs.docker.com/engine/reference/commandline/rename/|Renomme un conteneur]] :
 <xtermrtf> <xtermrtf>
Ligne 162: Ligne 167:
 </xtermrtf> </xtermrtf>
  
-==== exec ====+==== docker exec ====
 [[https://docs.docker.com/engine/reference/commandline/exec/|Lance une commande dans un conteneur]] : [[https://docs.docker.com/engine/reference/commandline/exec/|Lance une commande dans un conteneur]] :
 <xtermrtf> <xtermrtf>
Ligne 168: Ligne 173:
 </xtermrtf> </xtermrtf>
  
-==== cp ====+==== docker cp ====
 [[https://docs.docker.com/engine/reference/commandline/cp/|Copie un fichier dans ou hors du conteneur]] : [[https://docs.docker.com/engine/reference/commandline/cp/|Copie un fichier dans ou hors du conteneur]] :
  
Ligne 181: Ligne 186:
 </xtermrtf> </xtermrtf>
  
-==== events ====+==== docker events ====
 [[https://docs.docker.com/engine/reference/commandline/events/|Affiche le journal d'évenement de docker]] : [[https://docs.docker.com/engine/reference/commandline/events/|Affiche le journal d'évenement de docker]] :
  
Ligne 188: Ligne 193:
 </xtermrtf> </xtermrtf>
  
-==== login ====+==== docker login ====
 [[https://docs.docker.com/engine/reference/commandline/login/|Se connecter au docker hub]] : [[https://docs.docker.com/engine/reference/commandline/login/|Se connecter au docker hub]] :
 <xtermrtf> <xtermrtf>
Ligne 200: Ligne 205:
 Cela crée le fichier ''$HOME/.docker/config.json''. Cela crée le fichier ''$HOME/.docker/config.json''.
  
-==== logout ====+==== docker logout ====
 [[https://docs.docker.com/engine/reference/commandline/logout/|Se déconnecter du docker hub]] : [[https://docs.docker.com/engine/reference/commandline/logout/|Se déconnecter du docker hub]] :
 <xtermrtf> <xtermrtf>
Ligne 206: Ligne 211:
 </xtermrtf> </xtermrtf>
  
-==== pull ====+==== docker pull ====
 [[https://docs.docker.com/engine/reference/commandline/pull/|Télécharge une image docker]] : [[https://docs.docker.com/engine/reference/commandline/pull/|Télécharge une image docker]] :
 <xtermrtf> <xtermrtf>
Ligne 224: Ligne 229:
 </xtermrtf> </xtermrtf>
  
-==== push ====+==== docker push ====
 [[https://docs.docker.com/engine/reference/commandline/push/|Envoye une image sur le hub]] : [[https://docs.docker.com/engine/reference/commandline/push/|Envoye une image sur le hub]] :
  
Ligne 230: Ligne 235:
 $ docker push gigi206/test:v1 $ docker push gigi206/test:v1
 </xtermrtf> </xtermrtf>
-==== search  ====+ 
 +==== docker search  ====
 [[https://docs.docker.com/engine/reference/commandline/search/|Recherche une image]] : [[https://docs.docker.com/engine/reference/commandline/search/|Recherche une image]] :
 <xtermrtf> <xtermrtf>
Ligne 240: Ligne 246:
 </xtermrtf> </xtermrtf>
  
-==== rmi ====+==== docker rmi ====
 [[https://docs.docker.com/engine/reference/commandline/rmi/|Supprime une image]] : [[https://docs.docker.com/engine/reference/commandline/rmi/|Supprime une image]] :
  
Ligne 255: Ligne 261:
 </xtermrtf> </xtermrtf>
  
-==== rm ====+==== docker rm ====
 [[https://docs.docker.com/engine/reference/commandline/rm/|Supprime un conteneur]] : [[https://docs.docker.com/engine/reference/commandline/rm/|Supprime un conteneur]] :
  
Ligne 273: Ligne 279:
 </xtermrtf> </xtermrtf>
  
-==== ps ====+==== docker ps ====
 [[https://docs.docker.com/engine/reference/commandline/ps/|Liste les conteneurs]] : [[https://docs.docker.com/engine/reference/commandline/ps/|Liste les conteneurs]] :
  
Ligne 309: Ligne 315:
 </xtermrtf> </xtermrtf>
  
-==== logs ====+==== docker logs ====
 [[https://docs.docker.com/engine/reference/commandline/logs/|Affiche la sortie du conteneur]] : [[https://docs.docker.com/engine/reference/commandline/logs/|Affiche la sortie du conteneur]] :
  
Ligne 316: Ligne 322:
 </xtermrtf> </xtermrtf>
  
-==== start ====+==== docker start ====
 [[https://docs.docker.com/engine/reference/commandline/start/|Démarre un conteneur]] : [[https://docs.docker.com/engine/reference/commandline/start/|Démarre un conteneur]] :
  
Ligne 323: Ligne 329:
 </xtermrtf> </xtermrtf>
  
-==== stop ====+==== docker stop ====
 [[https://docs.docker.com/engine/reference/commandline/stop/|Arrête un conteneur]] : [[https://docs.docker.com/engine/reference/commandline/stop/|Arrête un conteneur]] :
  
Ligne 330: Ligne 336:
 </xtermrtf> </xtermrtf>
  
-==== restart ====+==== docker restart ====
 [[https://docs.docker.com/engine/reference/commandline/restart/|Redémarre un conteneur]] : [[https://docs.docker.com/engine/reference/commandline/restart/|Redémarre un conteneur]] :
  
Ligne 337: Ligne 343:
 </xtermrtf> </xtermrtf>
  
-==== kill ====+==== docker kill ====
 [[https://docs.docker.com/engine/reference/commandline/kill/|Envoie un signal au conteneur (Kill par défaut)]] : [[https://docs.docker.com/engine/reference/commandline/kill/|Envoie un signal au conteneur (Kill par défaut)]] :
  
Ligne 344: Ligne 350:
 </xtermrtf> </xtermrtf>
  
-==== wait ====+==== docker wait ====
 [[https://docs.docker.com/engine/reference/commandline/wait/|Attend jusqu'à ce que le conteneur s'arrête]] : [[https://docs.docker.com/engine/reference/commandline/wait/|Attend jusqu'à ce que le conteneur s'arrête]] :
  
Ligne 351: Ligne 357:
 </xtermrtf> </xtermrtf>
  
-==== pause ====+==== docker pause ====
 [[https://docs.docker.com/engine/reference/commandline/pause/|Met en pause le conteneur]] : [[https://docs.docker.com/engine/reference/commandline/pause/|Met en pause le conteneur]] :
  
Ligne 358: Ligne 364:
 </xtermrtf> </xtermrtf>
  
-==== unpause ====+==== docker unpause ====
 [[https://docs.docker.com/engine/reference/commandline/unpause/|Supprime la pause du conteneur]] : [[https://docs.docker.com/engine/reference/commandline/unpause/|Supprime la pause du conteneur]] :
  
Ligne 365: Ligne 371:
 </xtermrtf> </xtermrtf>
  
-==== version ====+==== docker version ====
 [[https://docs.docker.com/engine/reference/commandline/version/|Affiche la version de docker]] : [[https://docs.docker.com/engine/reference/commandline/version/|Affiche la version de docker]] :
  
Ligne 376: Ligne 382:
 </xtermrtf> </xtermrtf>
  
-==== info ====+==== docker info ====
 [[https://docs.docker.com/engine/reference/commandline/info/|Affiche des informations sur docker]] : [[https://docs.docker.com/engine/reference/commandline/info/|Affiche des informations sur docker]] :
  
Ligne 383: Ligne 389:
 </xtermrtf> </xtermrtf>
  
-==== top ====+==== docker top ====
 [[https://docs.docker.com/engine/reference/commandline/top/|Affiche le pid d'un conteneur]] : [[https://docs.docker.com/engine/reference/commandline/top/|Affiche le pid d'un conteneur]] :
  
Ligne 390: Ligne 396:
 </xtermrtf> </xtermrtf>
  
-==== inspect ====+==== docker inspect ====
 [[https://docs.docker.com/engine/reference/commandline/inspect/|Affiche les informations d'un conteneur, image ou tâche]] : [[https://docs.docker.com/engine/reference/commandline/inspect/|Affiche les informations d'un conteneur, image ou tâche]] :
  
Ligne 397: Ligne 403:
 </xtermrtf> </xtermrtf>
  
-==== commit ====+==== docker commit ====
 [[https://docs.docker.com/engine/reference/commandline/commit/|Crée une nouvelle image à partir d'un conteneur]] : [[https://docs.docker.com/engine/reference/commandline/commit/|Crée une nouvelle image à partir d'un conteneur]] :
  
Ligne 414: Ligne 420:
 </xtermrtf> </xtermrtf>
  
-==== update ====+==== docker update ====
 [[https://docs.docker.com/engine/reference/commandline/update/|Met à jour la configuration d'un conteneur]] : [[https://docs.docker.com/engine/reference/commandline/update/|Met à jour la configuration d'un conteneur]] :
  
Ligne 420: Ligne 426:
 $ docker update --cpu-shares 512 abebf7571666 $ docker update --cpu-shares 512 abebf7571666
 </xtermrtf> </xtermrtf>
-==== build ====+ 
 +==== docker build ====
 [[https://docs.docker.com/engine/reference/commandline/build/|Crée une nouvelle image à partir d'un Dockerfile]] : [[https://docs.docker.com/engine/reference/commandline/build/|Crée une nouvelle image à partir d'un Dockerfile]] :
  
 On créer un fichier [[#dockerfile|Dockerfile]] dans le répertoire courant et on lance la construction de l'image : On créer un fichier [[#dockerfile|Dockerfile]] dans le répertoire courant et on lance la construction de l'image :
 <xtermrtf> <xtermrtf>
-$ docker build -t ouruser/sinatra:v2 .+$ docker build -t gigi206/apache2_php5:v1 . 
 +$ docker tag gigi206/apache2_php5:v1 gigi206/apache2_php5:latest 
 +$ docker push gigi206/apache2_php5:lates 
 +</xtermrtf> 
 + 
 +==== docker save ==== 
 +[[https://docs.docker.com/engine/reference/commandline/save/|Exporte une image au format tar]] : 
 +<xtermrtf> 
 +$ docker save localhost:5000/suse/sles12sp2 -o sles12sp2.tar 
 +</xtermrtf> 
 + 
 +==== docker load ==== 
 +[[https://docs.docker.com/engine/reference/commandline/load/|Importe une image au format tar]] : 
 +<xtermrtf> 
 +$ cat exampleimage.tgz | docker import - exampleimagelocal:new
 </xtermrtf> </xtermrtf>
  
-==== export ====+==== docker export ====
 [[https://docs.docker.com/engine/reference/commandline/export/|Exporte un conteneur au format tar]] : [[https://docs.docker.com/engine/reference/commandline/export/|Exporte un conteneur au format tar]] :
  
Ligne 443: Ligne 464:
 </xtermrtf> </xtermrtf>
  
-==== import ====+==== docker import ====
 [[https://docs.docker.com/engine/reference/commandline/import/|Importe une image à partir d'un fichier archive  (.tar, .tar.gz, .tgz, .bzip, .tar.xz, ou .txz)]] : [[https://docs.docker.com/engine/reference/commandline/import/|Importe une image à partir d'un fichier archive  (.tar, .tar.gz, .tgz, .bzip, .tar.xz, ou .txz)]] :
  
Ligne 455: Ligne 476:
 </xtermrtf> </xtermrtf>
  
-==== port ====+==== docker port ====
 [[https://docs.docker.com/engine/reference/commandline/port/|Affiche le mapping de port d'un conteneur]] : [[https://docs.docker.com/engine/reference/commandline/port/|Affiche le mapping de port d'un conteneur]] :
  
Ligne 466: Ligne 487:
 </xtermrtf> </xtermrtf>
  
-==== stats ====+==== docker stats ====
 [[https://docs.docker.com/engine/reference/commandline/stats/|Affiche les statistiques d'un conteneur]] : [[https://docs.docker.com/engine/reference/commandline/stats/|Affiche les statistiques d'un conteneur]] :
  
Ligne 472: Ligne 493:
 $ docker stats 2d5e8999b138 $ docker stats 2d5e8999b138
 </xtermrtf> </xtermrtf>
-==== network ==== +==== docker network ==== 
-=== network driver ===+=== docker network driver ===
 Network supporte l'option ''driver'' afin de spécifier un driver. Celui par défaut est ''bridge''. Network supporte l'option ''driver'' afin de spécifier un driver. Celui par défaut est ''bridge''.
   * [[https://docs.docker.com/engine/userguide/networking/get-started-macvlan/|Driver macvlan]]   * [[https://docs.docker.com/engine/userguide/networking/get-started-macvlan/|Driver macvlan]]
   * [[https://docs.docker.com/engine/userguide/networking/get-started-overlay/|Driver Overlay]]   * [[https://docs.docker.com/engine/userguide/networking/get-started-overlay/|Driver Overlay]]
  
-=== network ls ===+=== docker network ls ===
 [[https://docs.docker.com/engine/reference/commandline/network_ls/|Affiche les réseaux disponibles]] : [[https://docs.docker.com/engine/reference/commandline/network_ls/|Affiche les réseaux disponibles]] :
  
Ligne 485: Ligne 506:
 </xtermrtf> </xtermrtf>
  
-=== network inspect ===+=== docker network inspect ===
 [[https://docs.docker.com/engine/reference/commandline/network_inspect/|Affiche les caractéristiques d'un réseau]] : [[https://docs.docker.com/engine/reference/commandline/network_inspect/|Affiche les caractéristiques d'un réseau]] :
 <xtermrtf> <xtermrtf>
Ligne 491: Ligne 512:
 </xtermrtf> </xtermrtf>
  
-=== network create ===+=== docker network create ===
 [[https://docs.docker.com/engine/reference/commandline/network_create/|Crée un nouveau réseau]] : [[https://docs.docker.com/engine/reference/commandline/network_create/|Crée un nouveau réseau]] :
 Créer un réseau qui n'a pas accès aux autres machines du parc : Créer un réseau qui n'a pas accès aux autres machines du parc :
Ligne 499: Ligne 520:
 </xtermrtf> </xtermrtf>
  
-=== network rm ===+=== docker network rm ===
 [[https://docs.docker.com/engine/reference/commandline/network_rm/|Supprime un réseau existant]] : [[https://docs.docker.com/engine/reference/commandline/network_rm/|Supprime un réseau existant]] :
 <xtermrtf> <xtermrtf>
Ligne 505: Ligne 526:
 </xtermrtf> </xtermrtf>
  
-=== network connect ===+=== docker network connect ===
 [[https://docs.docker.com/engine/reference/commandline/network_connect/|Connecte un conteneur à un nouveau réseau]]  (en plus des réseaux existants) : [[https://docs.docker.com/engine/reference/commandline/network_connect/|Connecte un conteneur à un nouveau réseau]]  (en plus des réseaux existants) :
 <xtermrtf> <xtermrtf>
Ligne 511: Ligne 532:
 </xtermrtf> </xtermrtf>
  
-=== network disconnect ===+=== docker network disconnect ===
 [[https://docs.docker.com/engine/reference/commandline/network_disconnect/|Déconnecte un conteneur d'un réseau]] : [[https://docs.docker.com/engine/reference/commandline/network_disconnect/|Déconnecte un conteneur d'un réseau]] :
 <xtermrtf> <xtermrtf>
Ligne 517: Ligne 538:
 </xtermrtf> </xtermrtf>
  
-==== volume ==== +==== docker volume ==== 
-=== volume ls ===+=== docker volume ls ===
 [[https://docs.docker.com/engine/reference/commandline/volume_ls/|Liste les volumes]] : [[https://docs.docker.com/engine/reference/commandline/volume_ls/|Liste les volumes]] :
  
Ligne 525: Ligne 546:
 </xtermrtf> </xtermrtf>
  
-=== volume create ===+=== docker volume create ===
 [[https://docs.docker.com/engine/reference/commandline/volume_create/|Crée un nouveau volume]] : [[https://docs.docker.com/engine/reference/commandline/volume_create/|Crée un nouveau volume]] :
 <note> <note>
Ligne 543: Ligne 564:
 </xtermrtf> </xtermrtf>
  
-=== volume inspect ===+=== docker volume inspect ===
 [[https://docs.docker.com/engine/reference/commandline/volume_inspect/|Affiche les informations d'un volume]] : [[https://docs.docker.com/engine/reference/commandline/volume_inspect/|Affiche les informations d'un volume]] :
  
Ligne 550: Ligne 571:
 </xtermrtf> </xtermrtf>
  
-=== volume rm ===+=== docker volume rm ===
 [[https://docs.docker.com/engine/reference/commandline/volume_rm/|Supprime un volume]] : [[https://docs.docker.com/engine/reference/commandline/volume_rm/|Supprime un volume]] :
  
Ligne 662: Ligne 683:
  
 === docker service inspect === === docker service inspect ===
-[[https://docs.docker.com/engine/reference/commandline/service_inspect/|Affiche la configuration du servive]] :+[[https://docs.docker.com/engine/reference/commandline/service_inspect/|Affiche la configuration du service]] :
 <xtermrtf> <xtermrtf>
 $ docker service inspect redis --pretty $ docker service inspect redis --pretty
Ligne 691: Ligne 712:
 </xtermrtf> </xtermrtf>
  
-===== Commandes docker-compose =====+===== Dockerfile ===== 
 +  * [[https://docs.docker.com/engine/reference/builder/#/dockerignore-file|Fichier .dockerignore]] 
 + 
 +==== FROM ==== 
 +[[https://docs.docker.com/engine/reference/builder/#/from|Auteur du fichier Dockerfile]] : 
 +<xtermrtf> 
 +MAINTAINER <name> 
 +</xtermrtf> 
 + 
 +==== MAINTAINER ==== 
 +[[https://docs.docker.com/engine/reference/builder/#/maintainer|Image utilisée pour fabriquer la nouvelle image]] : 
 +<xtermrtf> 
 +FROM <image> 
 +FROM <image>:<tag> 
 +FROM <image>@<digest>FROM <image>@<digest> 
 +</xtermrtf> 
 + 
 +==== RUN ==== 
 +[[https://docs.docker.com/engine/reference/builder/#/run|Exécute des commandes pour la création de l’image]] : 
 +<xtermrtf> 
 +RUN <command> 
 +RUN ["executable", "param1", "param2"
 +</xtermrtf> 
 + 
 +==== CMD ==== 
 +[[https://docs.docker.com/engine/reference/builder/#/cmd|Commande lancée au démarrage du conteneur]] : 
 +<xtermrtf> 
 +CMD <command> 
 +CMD ["executable", "param1", "param2"
 +</xtermrtf> 
 + 
 +Si un [[#ENTRYPOINT]] est définit : 
 +<xtermrtf> 
 +CMD ["param1","param2"
 +</xtermrtf> 
 + 
 +==== LABEL ==== 
 +[[https://docs.docker.com/engine/reference/builder/#/label|Ajoute des méta-data à une image]] : 
 +<xtermrtf> 
 +LABEL "com.example.vendor"="ACME Incorporated" 
 +LABEL com.example.label-with-value="foo" 
 +LABEL version="1.0" 
 +LABEL description="This text illustrates \ 
 +that label-values can span multiple lines." 
 +LABEL multi.label1="value1" multi.label2="value2" other="value3" 
 +LABEL multi.label1="value1"
 +      multi.label2="value2"
 +      other="value3" 
 +</xtermrtf> 
 + 
 +==== EXPOSE ==== 
 +[[https://docs.docker.com/engine/reference/builder/#/expose|Expose un port]] : 
 +<xtermrtf> 
 +EXPOSE <port> [<port>...] 
 +</xtermrtf> 
 + 
 +==== ENV ==== 
 +[[https://docs.docker.com/engine/reference/builder/#/env|Définit des varaibles d'environnement]] : 
 +<xtermrtf> 
 +ENV myName John Doe 
 +ENV myDog Rex The Dog 
 +ENV myCat fluffy 
 +ENV myName="John Doe" myDog=Rex\ The\ Dog \ 
 +    myCat=fluffy 
 +</xtermrtf> 
 + 
 +==== ADD ==== 
 +[[https://docs.docker.com/engine/reference/builder/#/add|Ajoute des fichiers]] : 
 +<xtermrtf> 
 +ADD <src>... <dest> 
 +ADD ["<src>",... "<dest>"]  
 +</xtermrtf> 
 + 
 +<xtermrtf> 
 +ADD hom* /mydir/ 
 +</xtermrtf> 
 + 
 +<note info> 
 +''ADD'' peut pour la source prendre des URLS (http/https) et des archives qu'il décompressera dans la destination. Voir aussi [[#COPY]] 
 +</note> 
 + 
 +==== COPY ==== 
 +[[https://docs.docker.com/engine/reference/builder/#/copy|Ajoute des fichiers]] : 
 +<xtermrtf> 
 +COPY <src>... <dest> 
 +COPY ["<src>",... "<dest>"]  
 +</xtermrtf> 
 + 
 +<note info> 
 +A la différence de [[#ADD]], ''COPY'' ne supporte pas les URLS en source et ne décompressera pas les archives. 
 +</note> 
 + 
 +==== ENTRYPOINT ==== 
 +[[https://docs.docker.com/engine/reference/builder/#/entrypoint|Permet d’exécuter la commande principale du conteneur. On peut également lui passer un script]] : 
 +<xtermrtf> 
 +ENTRYPOINT ["executable", "param1", "param2"
 +ENTRYPOINT command param1 param2 
 +</xtermrtf> 
 + 
 +<note info> 
 +Si l'on définit également [[#CMD]] alors qu'un ''ENTRYPOINT'' est définit alors ce qui est déclaré dans ''CMD'' sera passé en argument à ''ENTRYPOINT''
 +</note> 
 + 
 +==== VOLUME ==== 
 +[[https://docs.docker.com/engine/reference/builder/#/volume|Ajoute un volume]] : 
 +<xtermrtf> 
 +VOLUME <volume> 
 +VOLUME ["<volume>"]  
 +</xtermrtf> 
 + 
 +==== USER ==== 
 +[[https://docs.docker.com/engine/reference/builder/#/user|Indique avec quel utilisateur doit être lancé CMD, RUN et ENTRYPOINT]] : 
 +<xtermrtf> 
 +USER daemon 
 +</xtermrtf> 
 + 
 +==== WORKDIR ==== 
 +[[https://docs.docker.com/engine/reference/builder/#/workdir|Indique le CWD pour CMD, RUN, ENTRYPOINT, COPY et ADD]] : 
 +<xtermrtf> 
 +WORKDIR /path/to/workdir 
 +</xtermrtf> 
 + 
 +==== ARG ==== 
 +[[https://docs.docker.com/engine/reference/builder/#/arg|Définit des variables pour les réutiliser dans le Dockerfile]] : 
 +<xtermrtf> 
 +FROM busybox 
 +USER ${user:-some_user} 
 +ARG user 
 +USER $user 
 +</xtermrtf> 
 + 
 +Variables prédéfinies : 
 +  * HTTP_PROXY 
 +  * http_proxy 
 +  * HTTPS_PROXY 
 +  * https_proxy 
 +  * FTP_PROXY 
 +  * ftp_proxy 
 +  * NO_PROXY 
 +  * no_proxy 
 + 
 +==== ONBUILD ==== 
 +[[https://docs.docker.com/engine/reference/builder/#/onbuild|Indique un trigger à l'image qui sera lancé par un autre  BUILD sur cette image]] : 
 +<xtermrtf> 
 +ONBUILD ADD . /app/src 
 +ONBUILD RUN /usr/local/bin/python-build --dir /app/src 
 +</xtermrtf> 
 + 
 +<note> 
 +Pratique pour lancer une commande sur notre image si elle a été forkée... 
 +</note> 
 +==== STOPSIGNAL ==== 
 +[[https://docs.docker.com/engine/reference/builder/#/stopsignal|Indique le signal à envoyer au conteneur pour son arrêt]] : 
 +<xtermrtf> 
 +STOPSIGNAL signal 
 +</xtermrtf> 
 + 
 +==== HEALTHCHECK ==== 
 +[[https://docs.docker.com/engine/reference/builder/#/healthcheck|Vérifie la santé en lançant une commande dans le conteneur]] : 
 +<xtermrtf> 
 +HEALTHCHECK [OPTIONS] CMD command 
 +HEALTHCHECK --interval=5m --timeout=3s \ 
 +  CMD curl -f http://localhost/ || exit 1 
 +</xtermrtf> 
 + 
 +OPTIONS : 
 +  * --interval=DURATION (default: 30s) 
 +  * --timeout=DURATION (default: 30s) 
 +  * --retries=N (default: 3) 
 + 
 +''CMD'' peut être un script qui peut renvoyer le code de sortie ci-dessous : 
 +  * 0: success - the container is healthy and ready for use 
 +  * 1: unhealthy - the container is not working correctly 
 +  * 2: reserved - do not use this exit code 
 + 
 +==== SHELL ==== 
 +[[https://docs.docker.com/engine/reference/builder/#/shell|Indique quel shell utiliser]] : 
 +<xtermrtf> 
 +SHELL ["executable", "parameters"
 +SHELL ["/bin/sh", "-c"
 +</xtermrtf> 
 + 
 +===== docker-compose ===== 
 +==== Commandes docker-compose ====
 L'outil [[https://docs.docker.com/compose/reference/overview/|docker-compose]] fait intervenir la notion de service qui représente l'ensemble des conteneurs construits à partir d'un fichier ''docker-compose.yml''. L'outil [[https://docs.docker.com/compose/reference/overview/|docker-compose]] fait intervenir la notion de service qui représente l'ensemble des conteneurs construits à partir d'un fichier ''docker-compose.yml''.
  
-==== docker-compose build ====+=== docker-compose build ===
 [[https://docs.docker.com/compose/reference/build/|Construit ou reconstruit les images du service à partir du fichier]] ''docker-compose.yml''. [[https://docs.docker.com/compose/reference/build/|Construit ou reconstruit les images du service à partir du fichier]] ''docker-compose.yml''.
  
-==== docker-compose pull ====+=== docker-compose pull ===
 [[https://docs.docker.com/compose/reference/pull/|Vérifie les images du service.]] [[https://docs.docker.com/compose/reference/pull/|Vérifie les images du service.]]
  
-==== docker-compose up ====+=== docker-compose up ===
 [[https://docs.docker.com/compose/reference/up/|Crée et démarre le(s) conteneur(s) du service.]] [[https://docs.docker.com/compose/reference/up/|Crée et démarre le(s) conteneur(s) du service.]]
  
Ligne 713: Ligne 917:
 </xtermrtf> </xtermrtf>
  
-==== docker-compose ps ====+=== docker-compose ps ===
 [[https://docs.docker.com/compose/reference/up/|Liste les conteneurs.]] [[https://docs.docker.com/compose/reference/up/|Liste les conteneurs.]]
  
-==== docker-compose run ====+=== docker-compose run ===
 [[https://docs.docker.com/compose/reference/run/|Crée un conteneur avec la commande et le démarre.]] [[https://docs.docker.com/compose/reference/run/|Crée un conteneur avec la commande et le démarre.]]
  
-==== docker-compose exec ====+=== docker-compose exec ===
 [[https://docs.docker.com/compose/reference/exec/|Lance la commande si le conteneur est démarré.]] [[https://docs.docker.com/compose/reference/exec/|Lance la commande si le conteneur est démarré.]]
  
-==== docker-compose stop ====+=== docker-compose stop ===
 [[https://docs.docker.com/compose/reference/stop/|Arrête l'ensemble des conteneurs du service]] : [[https://docs.docker.com/compose/reference/stop/|Arrête l'ensemble des conteneurs du service]] :
 <xtermrtf> <xtermrtf>
Ligne 732: Ligne 936:
 </xtermrtf> </xtermrtf>
  
-==== docker-compose start ====+=== docker-compose start ===
 [[https://docs.docker.com/compose/reference/start/|Démarre l'ensemble des conteneurs du service]] : [[https://docs.docker.com/compose/reference/start/|Démarre l'ensemble des conteneurs du service]] :
 <xtermrtf> <xtermrtf>
Ligne 742: Ligne 946:
 </xtermrtf> </xtermrtf>
  
-==== docker-compose restart ====+=== docker-compose restart ===
 [[https://docs.docker.com/compose/reference/restart/|Redémarre le service.]] [[https://docs.docker.com/compose/reference/restart/|Redémarre le service.]]
  
-==== docker-compose down ====+=== docker-compose down ===
 [[https://docs.docker.com/compose/reference/down/|Arrête et supprime les conteneurs, volumes et réseau.]] [[https://docs.docker.com/compose/reference/down/|Arrête et supprime les conteneurs, volumes et réseau.]]
  
-==== docker-compose config ====+=== docker-compose config ===
 [[https://docs.docker.com/compose/reference/config/|Affiche l’équivalent du fichier ''docker-compose.yml''.]] [[https://docs.docker.com/compose/reference/config/|Affiche l’équivalent du fichier ''docker-compose.yml''.]]
  
-==== docker-compose events ====+=== docker-compose events ===
 [[https://docs.docker.com/compose/reference/events/|Affiche en temps réel les événements du service.]] [[https://docs.docker.com/compose/reference/events/|Affiche en temps réel les événements du service.]]
  
-==== docker-compose kill ====+=== docker-compose kill ===
 [[https://docs.docker.com/compose/reference/kill/|Envoie un signal pour l'ensemble des conteneurs du service.]] [[https://docs.docker.com/compose/reference/kill/|Envoie un signal pour l'ensemble des conteneurs du service.]]
  
-==== docker-compose pause ====+=== docker-compose pause ===
 [[https://docs.docker.com/compose/reference/pause/|Met en pause le service.]] [[https://docs.docker.com/compose/reference/pause/|Met en pause le service.]]
  
-==== docker-compose unpause ====+=== docker-compose unpause ===
 [[https://docs.docker.com/compose/reference/unpause/|Sort de la pause le service.]] [[https://docs.docker.com/compose/reference/unpause/|Sort de la pause le service.]]
  
-==== docker-compose logs ====+=== docker-compose logs ===
 [[https://docs.docker.com/compose/reference/logs/|Affiche les logs du service.]] [[https://docs.docker.com/compose/reference/logs/|Affiche les logs du service.]]
  
-==== docker-compose rm ====+=== docker-compose rm ===
 [[https://docs.docker.com/compose/reference/rm/|Supprime les conteneur arrêtés]] : [[https://docs.docker.com/compose/reference/rm/|Supprime les conteneur arrêtés]] :
 <xtermrtf> <xtermrtf>
Ligne 772: Ligne 976:
 </xtermrtf> </xtermrtf>
  
-==== docker-compose scale ====+=== docker-compose scale ===
 [[https://docs.docker.com/compose/reference/scale/|Multiplie le nombre de conteneur pour un service]] : [[https://docs.docker.com/compose/reference/scale/|Multiplie le nombre de conteneur pour un service]] :
 <xtermrtf> <xtermrtf>
Ligne 778: Ligne 982:
 </xtermrtf> </xtermrtf>
  
-==== docker-compose version ====+=== docker-compose version ===
 [[https://docs.docker.com/compose/reference/version/|Affiche la version de ''docker-compose''.]] [[https://docs.docker.com/compose/reference/version/|Affiche la version de ''docker-compose''.]]
  
 +==== Syntaxe docker-compose.yml ====
 +=== build ===
 +[[https://docs.docker.com/compose/compose-file/#/build|Construit l'image à partir d'une image existante ou d'un Dockerfile]] :
 +
 +2 moyens :
 +  * A partir de Dockerfile
 +  * ou d'un dossier
 +
 +<xtermrtf>
 +build:
 +  context: ./dir
 +  dockerfile: Dockerfile-alternate
 +  args:
 +    buildno: 1
 +</xtermrtf>
 +
 +<xtermrtf>
 +build: ./dir
 +image: webapp:tag
 +</xtermrtf>
 +
 +''image'' et ''dockerfile'' sont exclusifs.
 +
 +=== args ===
 +[[https://docs.docker.com/compose/compose-file/#/args|Permet de donner des arguments au Dockerfile]] :
 +<xtermrtf>
 +build:
 +  context: .
 +  args:
 +    buildno: 1
 +    password: secret
 +</xtermrtf>
 +
 +Et dans notre ''Dockerfile'' :
 +<xtermrtf>
 +ARG buildno
 +ARG password
 +
 +RUN echo "Build number: $buildno"
 +RUN script-requiring-password.sh "$password"
 +</xtermrtf>
 +
 +=== capadd-capdrop ===
 +[[https://docs.docker.com/compose/compose-file/#/capadd-capdrop|Permet de donner des capabilities au conteneur]] :
 +<xtermrtf>
 +cap_add:
 +  - ALL
 +
 +cap_drop:
 +  - NET_ADMIN
 +  - SYS_ADMIN
 +</xtermrtf>
 +
 +=== command ===
 +[[https://docs.docker.com/compose/compose-file/#/command|Ecrase la commande par défaut du conteneur]].
 +<xtermrtf>
 +2 formats :
 +command: bundle exec thin -p 3000
 +</xtermrtf>
 +
 +<xtermrtf>
 +command: [bundle, exec, thin, -p, 3000]
 +</xtermrtf>
 +
 +=== cgroup_parent ===
 +[[https://docs.docker.com/compose/compose-file/#/cgroupparent|Définit un cgroup parent pour le conteneur]] :
 +<xtermrtf>
 +cgroup_parent: m-executor-abcd
 +</xtermrtf>
 +
 +=== container_name ===
 +[[https://docs.docker.com/compose/compose-file/#/containername|Définit un nom pour le conteneur]] :
 +<xtermrtf>
 +container_name: my-web-container
 +</xtermrtf>
 +
 +=== devices ===
 +[[https://docs.docker.com/compose/compose-file/#/devices|Mapping des devices]] :
 +<xtermrtf>
 +devices:
 +  - "/dev/ttyUSB0:/dev/ttyUSB0"
 +</xtermrtf>
 +
 +=== depends_on ===
 +[[https://docs.docker.com/compose/compose-file/#/dependson|Dépendences sur l'ordre des services]] :
 +<xtermrtf>
 +devices:
 +version: '2'
 +services:
 +  web:
 +    build: .
 +    depends_on:
 +      - db
 +      - redis
 +  redis:
 +    image: redis
 +  db:
 +    image: postgres
 +</xtermrtf>
 +
 +<note info>
 +''depends_on'' n'attendra pas dans l'exemple ci-dessus que ''db'' et ''redis'' soient démarrés. Pour attendre [[https://docs.docker.com/compose/startup-order/|cf cette page]].
 +</note>
 +
 +=== dns ===
 +[[https://docs.docker.com/compose/compose-file/#/dns|Déclare le serveur dns]] :
 +<xtermrtf>
 +dns: 8.8.8.8
 +dns:
 +  - 8.8.8.8
 +  - 9.9.9.9
 +</xtermrtf>
 +
 +=== dns_search ===
 +[[https://docs.docker.com/compose/compose-file/#/dnssearch|Déclare la search list DNS]] :
 +<xtermrtf>
 +dns_search: example.com
 +dns_search:
 +  - dc1.example.com
 +  - dc2.example.com
 +</xtermrtf>
 +
 +=== tmpfs ===
 +[[https://docs.docker.com/compose/compose-file/#/tmpfs|Déclare un système de fichier tmpfs]] :
 +<xtermrtf>
 +tmpfs: /run
 +tmpfs:
 +  - /run
 +  - /tmp
 +</xtermrtf>
 +
 +=== entrypoint ===
 +[[https://docs.docker.com/compose/compose-file/#/entrypoint|Ecrase l'entrypoint par défaut]] :
 +<xtermrtf>
 +entrypoint: /code/entrypoint.sh
 +</xtermrtf>
 +
 +<xtermrtf>
 +entrypoint:
 +    - php
 +    - -d
 +    - zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so
 +    - -d
 +    - memory_limit=-1
 +    - vendor/bin/phpunit
 +</xtermrtf>
 +
 +=== env_file ===
 +[[https://docs.docker.com/compose/compose-file/#/envfile|Déclare des variables d'environnement dans un fichier]] :
 +<xtermrtf>
 +env_file: .env
 +
 +env_file:
 +  - ./common.env
 +  - ./apps/web.env
 +  - /opt/secrets.env
 +</xtermrtf>
 +
 +<code>
 +# Set Rails/Rack environment
 +RACK_ENV=development
 +</code>
 +
 +<note info>
 +Si vous spécifier l'option [[#build]], les variables définies dans votre fichier d'environnement ne seront pas prises en compte. Dans ce cas, utilisez l'option [[#args]] à la place dans les sous-options de [[#build]].
 +</note>
 +
 +=== environment ===
 +[[https://docs.docker.com/compose/compose-file/#/environment|Déclare des variables d'environnement]] :
 +<xtermrtf>
 +environment:
 +  RACK_ENV: development
 +  SHOW: 'true'
 +  SESSION_SECRET:
 +
 +environment:
 +  - RACK_ENV=development
 +  - SHOW=true
 +  - SESSION_SECRE
 +</xtermrtf>
 +
 +<note info>
 +Si vous spécifier l'option [[#build]], les variables d'environnement définies ne seront pas prises en compte. Dans ce cas, utilisez l'option [[#args]] à la place dans les sous-options de [[#build]].
 +</note>
 +
 +=== expose ===
 +[[https://docs.docker.com/compose/compose-file/#/expose|Expose un port vers l’extérieur]] :
 +<xtermrtf>
 +expose:
 + - "3000"
 + - "8000"
 +</xtermrtf>
 +
 +<note info>
 +Voir également [[#ports]].
 +</note>
 +
 +=== extends ===
 +[[https://docs.docker.com/compose/compose-file/#/extends|Permet de faire appel à un autre fichier yml pour déclarer un service]] :
 +<xtermrtf>
 +extends:
 +  file: common.yml
 +  service: webapp
 +</xtermrtf>
 +
 +<note info>
 +''file'' peut être défini par un chemin relatif ou absolu.
 +</note>
 +
 +=== external_links ===
 +[[https://docs.docker.com/compose/compose-file/#/externallinks|Lie au niveau réseau 2 conteneurs qui n'ont pas été déclarés dans le même fichier docker-compose.yml]] :
 +<xtermrtf>
 +external_links:
 + - redis_1
 + - project_db_1:mysql
 + - project_db_1:postgresql
 +</xtermrtf>
 +
 +<note info>
 +Voir aussi [[#links]]
 +</note>
 +
 +=== extra_hosts ===
 +[[https://docs.docker.com/compose/compose-file/#/extrahosts|Ajoute une entrée dans le fichier /etc/hosts]] :
 +<xtermrtf>
 +extra_hosts:
 + - "somehost:162.242.195.82"
 + - "otherhost:50.31.209.229"
 +</xtermrtf>
 +
 +=== image ===
 +[[https://docs.docker.com/compose/compose-file/#/image|Spécifie l'image du conteneur]] :
 +<xtermrtf>
 +image: ubuntu:14.04
 +</xtermrtf>
 +
 +=== labels ===
 +[[https://docs.docker.com/compose/compose-file/#/labels|Ajoute un label dans les metadata]] :
 +<xtermrtf>
 +labels:
 +  com.example.description: "Accounting webapp"
 +  com.example.department: "Finance"
 +  com.example.label-with-empty-value: ""
 +
 +labels:
 +  - "com.example.description=Accounting webapp"
 +  - "com.example.department=Finance"
 +  - "com.example.label-with-empty-value"
 +</xtermrtf>
 +
 +=== links ===
 +[[https://docs.docker.com/compose/compose-file/#/links|Lie au niveau réseau 2 conteneurs qui sont déclarés dans le même fichier docker-compose.yml]] :
 +<xtermrtf>
 +web:
 +  links:
 +   - db
 +   - db:database
 +   - redis
 +</xtermrtf>
 +
 +<note info>
 +Voir aussi [[#external_links]]. Les conteneurs liés doivent posséder au moins un réseau en commun pour communiquer.
 +</note>
 +
 +=== logging ===
 +[[https://docs.docker.com/compose/compose-file/#/logging|Définit de quelle façon le conteneur doit envoyer ses logs]] :
 +<xtermrtf>
 +logging:
 +  driver: syslog
 +  options:
 +    syslog-address: "tcp://192.168.0.42:123"
 +</xtermrtf>
 +
 +<note info>
 +[[https://docs.docker.com/engine/admin/logging/overview/|Liste des drivers disponibles]].
 +</note>
 +
 +=== network_mode ===
 +[[https://docs.docker.com/compose/compose-file/#/networkmode|Définit le mode pour le réseau réseau]] :
 +<xtermrtf>
 +network_mode: "bridge"
 +network_mode: "host"
 +network_mode: "none"
 +network_mode: "service:[service name]"
 +network_mode: "container:[container name/id]"
 +</xtermrtf>
 +
 +=== networks ===
 +[[https://docs.docker.com/compose/compose-file/#/networks|Définit les réseaux]] :
 +<xtermrtf>
 +services:
 +  some-service:
 +    networks:
 +     - some-network
 +     - other-network
 +</xtermrtf>
 +
 +=== aliases ===
 +[[https://docs.docker.com/compose/compose-file/#/aliases|Définit les alias]] :
 +<xtermrtf>
 +services:
 +  some-service:
 +    networks:
 +     - some-network
 +     - other-network
 +</xtermrtf>
 +
 +=== ipv4_address, ipv6_address ===
 +[[https://docs.docker.com/compose/compose-file/#/ipv4address-ipv6address|Spécifie une adresse ipv4 et/ou ipv6 pour un conteneur]] :
 +<xtermrtf>
 +services:
 +  app:
 +    image: busybox
 +    command: ifconfig
 +    networks:
 +      app_net:
 +        ipv4_address: 172.16.238.10
 +        ipv6_address: 2001:3984:3989::10
 +</xtermrtf>
 +
 +=== pid ===
 +[[https://docs.docker.com/compose/compose-file/#/pid|Définit le pid mode]] :
 +<xtermrtf>
 +pid: "host"
 +</xtermrtf>
 +
 +<note info>
 +[[https://docs.docker.com/engine/reference/run/#pid-settings---pid|Voir les pid mode]].
 +</note>
 +
 +=== ports ===
 +[[https://docs.docker.com/compose/compose-file/#/ports|Définit les ports du conteneur]] :
 +<xtermrtf>
 +ports:
 + - "3000"
 + - "3000-3005"
 + - "8000:8000"
 + - "9090-9091:8080-8081"
 + - "49100:22"
 + - "127.0.0.1:8001:8001"
 + - "127.0.0.1:5000-5010:5000-5010"
 +</xtermrtf>
 +
 +<note info>
 +Voir également [[#expose]].
 +</note>
 +
 +=== security_opt ===
 +[[https://docs.docker.com/compose/compose-file/#/securityopt|Sécurité SeLinux]] :
 +<xtermrtf>
 +security_opt:
 +  - label:user:USER
 +  - label:role:ROLE
 +</xtermrtf>
 +
 +=== stop_signal ===
 +[[https://docs.docker.com/compose/compose-file/#/stopsignal|Signal envoyé au conteneur pour son arrêt]] :
 +<xtermrtf>
 +stop_signal: SIGUSR1
 +</xtermrtf>
 +
 +=== ulimits ===
 +[[https://docs.docker.com/compose/compose-file/#/ulimits|Paramètres ulimits]] :
 +<xtermrtf>
 +ulimits:
 +  nproc: 65535
 +  nofile:
 +    soft: 20000
 +    hard: 40000
 +</xtermrtf>
 +
 +=== volumes, volume_driver ===
 +[[https://docs.docker.com/compose/compose-file/#/volumes-volumedriver|Mapping des volulmes]] :
 +<xtermrtf>
 +volumes:
 +  # Just specify a path and let the Engine create a volume
 +  - /var/lib/mysql
 +
 +  # Specify an absolute path mapping
 +  - /opt/data:/var/lib/mysql
 +
 +  # Path on the host, relative to the Compose file
 +  - ./cache:/tmp/cache
 +
 +  # User-relative path
 +  - ~/configs:/etc/configs/:ro
 +
 +  # Named volume
 +  - datavolume:/var/lib/mysql
 +</xtermrtf>
 +
 +=== volumes_from ===
 +[[https://docs.docker.com/compose/compose-file/#/volumesfrom|Monte les volumes définit dans un autre conteneur]] :
 +<xtermrtf>
 +volumes_from:
 + - service_name
 + - service_name:ro
 + - container:container_name
 + - container:container_name:rw
 +</xtermrtf>
 +
 +=== cpu_shares, cpu_quota, cpuset, domainname, hostname, ipc, mac_address, mem_limit, memswap_limit, privileged, read_only, restart, shm_size, stdin_open, tty, user, working_dir ===
 +[[https://docs.docker.com/compose/compose-file/#/cpushares-cpuquota-cpuset-domainname-hostname-ipc-macaddress-memlimit-memswaplimit-privileged-readonly-restart-shmsize-stdinopen-tty-user-workingdir|Définit différent paramètres]] :
 +<xtermrtf>
 +cpu_shares: 73
 +cpu_quota: 50000
 +cpuset: 0,1
 +
 +user: postgresql
 +working_dir: /code
 +
 +domainname: foo.com
 +hostname: foo
 +ipc: host
 +mac_address: 02:42:ac:11:65:43
 +
 +mem_limit: 1000000000
 +memswap_limit: 2000000000
 +privileged: true
 +
 +restart: always
 +
 +read_only: true
 +shm_size: 64M
 +stdin_open: true
 +tty: true
 +</xtermrtf>
  
systeme/docker.1477911245.txt.gz · Dernière modification : 2016/10/31 10:54 de root