| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| systeme:docker [2016/10/31 10:54] – [Commandes docker swarm] root | systeme:docker [2018/02/23 21:27] (Version actuelle) – root |
|---|
| * [[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 ===== |
| [[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]] : |
| |
| $ 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]] : |
| |
| </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]] : |
| |
| </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]] : |
| |
| </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]] : |
| |
| * **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]] : |
| |
| </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> |
| </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> |
| </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> |
| </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]] : |
| |
| </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]] : |
| |
| </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> |
| 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> |
| </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> |
| </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]] : |
| |
| $ 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> |
| </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]] : |
| |
| </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]] : |
| |
| </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]] : |
| |
| </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]] : |
| |
| </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]] : |
| |
| </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]] : |
| |
| </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]] : |
| |
| </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)]] : |
| |
| </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]] : |
| |
| </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]] : |
| |
| </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]] : |
| |
| </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]] : |
| |
| </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]] : |
| |
| </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]] : |
| |
| </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]] : |
| |
| </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]] : |
| |
| </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]] : |
| |
| $ 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]] : |
| |
| </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)]] : |
| |
| </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]] : |
| |
| </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]] : |
| |
| $ 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]] : |
| |
| </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> |
| </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 : |
| </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> |
| </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> |
| </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> |
| </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]] : |
| |
| </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> |
| </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]] : |
| |
| </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]] : |
| |
| |
| === 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 |
| </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.]] |
| |
| </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> |
| </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> |
| </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> |
| </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> |
| </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> |
| |