Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
systeme:docker [2016/10/31 10:59] – [wait] 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 ===== |
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> |
| |
| |
=== 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> |
| |