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:59] – [wait] 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 428: Ligne 432:
 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>
  
Ligne 665: 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 694: 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 716: 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 735: 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 745: 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 775: 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 781: 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.1477911561.txt.gz · Dernière modification : 2016/10/31 10:59 de root