Commandes docker-compose
DOCKER-COMPOSE
Commande : docker-compose
docker-compose [-f ...] [options] [COMMAND] [ARGS...]
DOCKER-COMPOSE BUILD
Commande : docker-compose build
Construire ou reconstruire les images des services dont le Dockerfile a été modifié :
Si un Dockerfile est modifié, un docker-compose up ne le prendra pas en compte, il faut effectuer un rebuild du service correspondant (ou de tous les services).
Le cache sera utilisé jusqu’à la première ligne modifiée.
docker-compose build [SERVICE...]
ex :
$ docker-compose build
Construire ou reconstruire les images avec les dernières versions des images de base :
docker-compose build --pull [SERVICE...]
ex :
$ docker-compose build --pull
Construire ou reconstruire les images sans utiliser le cache :
docker-compose build --no-cache [SERVICE...]
ex :
$ docker-compose build --no-cache
DOCKER-COMPOSE CONFIG
Commande : docker-compose config
Pour plus d’informations sur la génération de configurations avec docker-compose, voir l’article suivant :
Docker – Mini-tutos
Vérifier la configuration et la syntaxe du fichier Docker Compose :
docker-compose config
ex :
$ docker-compose config
ERROR: yaml.scanner.ScannerError: while scanning a simple key
in "./docker-compose.yml", line 2, column 1
could not find expected ':'
in "./docker-compose.yml", line 3, column 1
Vérifier la configuration et la syntaxe du fichier Docker Compose silencieusement par le code retour :
docker-compose config -q
ex :
$ docker-compose config -q
$ echo $?
0
Lister les services définis dans le fichier Docker Compose :
docker-compose config --services
Equivaut à :
docker-compose ps --services
ex :
$ docker-compose config --services
vote
result
redis
worker
db
Lister les volumes définis dans le fichier Docker Compose :
docker-compose config --services
ex :
$ docker-compose config --volumes
db-data
DOCKER-COMPOSE DOWN
Commande : docker-compose down
Arrêter les services, supprimer les containers et les réseaux de l’application :
Contrairement à la commande docker-compose stop, les containers seront non seulement arrêtés mais également supprimés.
Les réseaux définis dans le fichier docker-compose.yml seront également supprimés.
docker-compose down
ex :
$ docker-compose down
Stopping db ... done
Stopping example-voting-app_result_1 ... done
Stopping example-voting-app_vote_1 ... done
Stopping example-voting-app_worker_1 ... done
Stopping redis ... done
Removing db ... done
Removing example-voting-app_result_1 ... done
Removing example-voting-app_vote_1 ... done
Removing example-voting-app_worker_1 ... done
Removing redis ... done
Removing network example-voting-app_front-tier
Removing network example-voting-app_back-tier
$ docker-compose -f compose-sample-3/docker-compose.yml down
Arrêter les services, supprimer les containers, les réseaux et les volumes :
docker-compose down --volumes
ex :
$ docker-compose down --volumes
Stopping example-voting-app_worker_1 ... done
Stopping redis ... done
Stopping db ... done
Stopping example-voting-app_result_1 ... done
Stopping example-voting-app_vote_1 ... done
Removing example-voting-app_worker_1 ... done
Removing redis ... done
Removing db ... done
Removing example-voting-app_result_1 ... done
Removing example-voting-app_vote_1 ... done
Removing network example-voting-app_front-tier
Removing network example-voting-app_back-tier
Removing volume example-voting-app_db-data
Arrêter les services, supprimer les containers, les réseaux, les volumes et les images construites et téléchargées :
docker-compose down --volumes --rmi all
ex :
$ docker-compose down --volumes --rmi all
Stopping example-voting-app_worker_1 ... done
Stopping example-voting-app_result_1 ... done
Stopping redis ... done
Stopping example-voting-app_vote_1 ... done
Stopping db ... done
Removing example-voting-app_worker_1 ... done
Removing example-voting-app_result_1 ... done
Removing redis ... done
Removing example-voting-app_vote_1 ... done
Removing db ... done
Removing network example-voting-app_front-tier
Removing network example-voting-app_back-tier
Removing volume example-voting-app_db-data
Removing image example-voting-app_vote
Removing image example-voting-app_result
Removing image redis:alpine
Removing image example-voting-app_worker
Removing image postgres:9.4
DOCKER-COMPOSE EVENTS
Commande : docker-compose events
Recevoir les évènements en temps réels des containers :
Les évènements reçus sont du type : attach, detach, kill, pause, unpause, start, stop, top, etc.
Pour la liste complète des évènements reçus : Docker Docs – docker events
docker-compose events [--json] [SERVICE...]
ex :
$ docker-compose events
2018-10-20 23:09:26.748261 container exec_create: apk update 04039d38798034c313f5465a3fd235252ae26f9476e269400d98827f13af857b (image=example-voting-app_result, name=example-voting-app_result_1)
2018-10-20 23:09:26.751897 container exec_start: apk update 04039d38798034c313f5465a3fd235252ae26f9476e269400d98827f13af857b (image=example-voting-app_result, name=example-voting-app_result_1)
2018-10-20 23:09:27.886204 container exec_die 04039d38798034c313f5465a3fd235252ae26f9476e269400d98827f13af857b (image=example-voting-app_result, name=example-voting-app_result_1)
$ docker-compose events --json
{"time": "2018-10-20T23:21:17.056049", "type": "container", "action": "exec_create: apk update", "id": "04039d38798034c313f5465a3fd235252ae26f9476e269400d98827f13af857b", "service": "result", "attributes": {"name": "example-voting-app_result_1", "image": "example-voting-app_result"}}
{"time": "2018-10-20T23:21:17.061523", "type": "container", "action": "exec_start: apk update", "id": "04039d38798034c313f5465a3fd235252ae26f9476e269400d98827f13af857b", "service": "result", "attributes": {"name": "example-voting-app_result_1", "image": "example-voting-app_result"}}
{"time": "2018-10-20T23:21:17.863245", "type": "container", "action": "exec_die", "id": "04039d38798034c313f5465a3fd235252ae26f9476e269400d98827f13af857b", "service": "result", "attributes": {"name": "example-voting-app_result_1", "image": "example-voting-app_result"}}
$ docker-compose events --json | jq
{
"time": "2018-10-20T23:23:08.660013",
"type": "container",
"action": "exec_create: apk update",
"id": "04039d38798034c313f5465a3fd235252ae26f9476e269400d98827f13af857b",
"service": "result",
"attributes": {
"name": "example-voting-app_result_1",
"image": "example-voting-app_result"
}
}
{
"time": "2018-10-20T23:23:08.666409",
"type": "container",
"action": "exec_start: apk update",
"id": "04039d38798034c313f5465a3fd235252ae26f9476e269400d98827f13af857b",
"service": "result",
"attributes": {
"name": "example-voting-app_result_1",
"image": "example-voting-app_result"
}
}
{
"time": "2018-10-20T23:23:09.460027",
"type": "container",
"action": "exec_die",
"id": "04039d38798034c313f5465a3fd235252ae26f9476e269400d98827f13af857b",
"service": "result",
"attributes": {
"name": "example-voting-app_result_1",
"image": "example-voting-app_result"
}
}
DOCKER-COMPOSE EXEC
Commande : docker-compose exec
Forcer l'arrêt des containers d'une application :
docker-compose exec [options] [-e KEY=VAL...] SERVICE COMMAND [ARGS...]
ex :
$ docker-compose exec redis apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
v3.8.1-34-ga8e558ca77 [http://dl-cdn.alpinelinux.org/alpine/v3.8/main]
v3.8.1-28-g1d8df16b35 [http://dl-cdn.alpinelinux.org/alpine/v3.8/community]
OK: 9540 distinct packages available
DOCKER-COMPOSE IMAGES
Commande : docker-compose images
Lister les images utilisées (téléchargées et construites) par les containers de services :
docker-compose images [SERVICE...]
ex :
$ docker-compose images
Container Repository Tag Image Id Size
-----------------------------------------------------------------------------------------
db postgres 9.4 7889bf54d0cf 214 MB
example-voting-app_result_1 example-voting-app_result latest 25f381575994 77.5 MB
example-voting-app_vote_1 example-voting-app_vote latest 9768fa953ff5 68.2 MB
example-voting-app_worker_1 example-voting-app_worker latest 96ca93da0c49 1.6 GB
redis redis alpine 05635ee9e1c7 39 MB
$ docker-compose images db
Container Repository Tag Image Id Size
----------------------------------------------------
db postgres 9.4 7889bf54d0cf 214 MB
DOCKER-COMPOSE KILL
Commande : docker-compose kill
Forcer l'arrêt des containers d'une application :
docker-compose kill [SERVICE...]
ex :
$ docker-compose kill
Killing example-voting-app_vote_1 ... done
Killing example-voting-app_worker_1 ... done
Killing db ... done
Killing redis ... done
Killing example-voting-app_result_1 ... done
$ docker-compose kill redis
Killing redis ... done
$ docker-compose kill -s 15 vote
Killing example-voting-app_vote_1 ... done
$ docker-compose kill -s SIGTERM result
Killing example-voting-app_result_1 ... done
DOCKER-COMPOSE LOGS
Commande : docker-compose logs
Afficher la sortie produite par les services spécifiés :
docker-compose logs [options] [SERVICE...]
ex :
$ docker-compose logs logstash
[...]
logstash_1 | 12:55:24.411 [Api Webserver] INFO logstash.agent - Successfully started Logstash API endpoint {:port=>9600}
logstash_1 | {
logstash_1 | "request" => "/api/object/5996fc0f4c06fb000f83b7",
logstash_1 | "agent" => ""Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0"",
logstash_1 | "minor" => "0",
logstash_1 | "auth" => "-",
logstash_1 | "ident" => "-",
logstash_1 | "type" => "nginx",
logstash_1 | "path" => "/var/log/nginx.log",
logstash_1 | "major" => "55",
logstash_1 | "clientip" => "46.218.112.178",
logstash_1 | "@version" => "1",
logstash_1 | "host" => "c8adf8edaa41",
logstash_1 | "extra_fields" => " "-"",
logstash_1 | "geoip" => {
logstash_1 | "timezone" => "Europe/Paris",
logstash_1 | "ip" => "46.218.112.178",
logstash_1 | "latitude" => 48.8058,
logstash_1 | "continent_code" => "EU",
logstash_1 | "city_name" => "Alfortville",
logstash_1 | "country_name" => "France",
logstash_1 | "country_code2" => "FR",
logstash_1 | "country_code3" => "FR",
logstash_1 | "region_name" => "Val-de-Marne",
logstash_1 | "location" => {
logstash_1 | "lon" => 2.4204,
logstash_1 | "lat" => 48.8058
logstash_1 | },
logstash_1 | "postal_code" => "94140",
logstash_1 | "region_code" => "94",
logstash_1 | "longitude" => 2.4204
logstash_1 | },
logstash_1 | "os" => "Windows 10",
logstash_1 | "verb" => "GET",
logstash_1 | "message" => "46.218.112.178 - - [28/Sep/2017:15:40:04 +0000] "GET /api/object/5996fc0f4c06fb000f83b7 HTTP/1.1" 200 501 "https://mydomain.net/map" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0" "-"",
logstash_1 | "tags" => [
logstash_1 | [0] "nginx-geoip"
logstash_1 | ],
logstash_1 | "referrer" => ""https://mydomain.net/map"",
logstash_1 | "@timestamp" => 2017-09-28T15:40:04.000Z,
logstash_1 | "build" => "",
logstash_1 | "response" => 200,
logstash_1 | "bytes" => 501,
logstash_1 | "name" => "Firefox",
logstash_1 | "os_name" => "Windows 10",
logstash_1 | "httpversion" => "1.1",
logstash_1 | "device" => "Other"
logstash_1 | }
[...]
$ docker-compose logs -f --tail=3
Attaching to example-voting-app_worker_1, redis, db, example-voting-app_result_1, example-voting-app_vote_1
worker_1 | Connected to db
worker_1 | Found redis at 172.27.0.3
worker_1 | Connecting to redis
db | LOG: MultiXact member wraparound protections are now enabled
db | LOG: database system is ready to accept connections
db | LOG: autovacuum launcher started
vote_1 | * Restarting with stat
vote_1 | * Debugger is active!
vote_1 | * Debugger PIN: 113-172-582
result_1 | Waiting for db
result_1 | Waiting for db
result_1 | Connected to db
redis | 1:M 20 Oct 2018 20:26:38.509 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
redis | 1:M 20 Oct 2018 20:26:38.509 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
redis | 1:M 20 Oct 2018 20:26:38.509 * Ready to accept connections
DOCKER-COMPOSE PAUSE
Commande : docker-compose pause
Mettre en pause les services spécifiés :
Si aucun service n'est spécifié, tous les services de l'application seront mis en pause.
docker-compose pause [SERVICE...]
ex :
$ docker-compose ps
Name Command State Ports
-------------------------------------------------------------------------------------------------------------------
db docker-entrypoint.sh postgres Up 5432/tcp
example-voting-app_result_1 nodemon server.js Up 0.0.0.0:5858->5858/tcp, 0.0.0.0:5001->80/tcp
example-voting-app_vote_1 python app.py Up 0.0.0.0:5000->80/tcp
example-voting-app_worker_1 /bin/sh -c dotnet src/Work ... Up
redis docker-entrypoint.sh redis ... Up 0.0.0.0:32772->6379/tcp
$ docker-compose pause vote
Pausing example-voting-app_vote_1 ... done
$ docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------------------------------
db docker-entrypoint.sh postgres Up 5432/tcp
example-voting-app_result_1 nodemon server.js Up 0.0.0.0:5858->5858/tcp, 0.0.0.0:5001->80/tcp
example-voting-app_vote_1 python app.py Paused 0.0.0.0:5000->80/tcp
example-voting-app_worker_1 /bin/sh -c dotnet src/Work ... Up
redis docker-entrypoint.sh redis ... Up 0.0.0.0:32772->6379/tcp
DOCKER-COMPOSE PS
Commande : docker-compose ps
Afficher la liste des containers de l'application :
docker-compose ps
ex :
$ docker-compose ps
Name Command State Ports
-------------------------------------------------------------------------------------------------------------------
db docker-entrypoint.sh postgres Up 5432/tcp
example-voting-app_result_1 nodemon server.js Up 0.0.0.0:5858->5858/tcp, 0.0.0.0:5001->80/tcp
example-voting-app_vote_1 python app.py Up 0.0.0.0:5000->80/tcp
example-voting-app_worker_1 /bin/sh -c dotnet src/Work ... Up
redis docker-entrypoint.sh redis ... Up 0.0.0.0:32782->6379/tcp
Afficher la liste des services de l'application :
Les services sont listés même si aucun container n'est démarré.
docker-compose ps --services
Equivaut à :
docker-compose config --services
ex :
$ docker-compose ps --services
vote
result
redis
worker
db
DOCKER-COMPOSE PULL
Commande : docker-compose pull
Télécharger les images de base des services sans démarrer les containers :
Les images seront téléchargées, mais aucune ne sera construite.
docker-compose pull [SERVICE...]
ex :
$ docker-compose pull
Pulling vote ... done
Pulling result ... done
Pulling redis ... done
Pulling worker ... done
Pulling db ... done
DOCKER-COMPOSE RESTART
Commande : docker-compose restart
Redémarrer des services actifs :
Si aucun service n'est spécifié, tous les services de l'application seront redémarrés.
docker-compose restart [SERVICE...]
ex :
$ docker-compose restart
Restarting example-voting-app_worker_1 ... done
Restarting db ... done
Restarting example-voting-app_result_1 ... done
Restarting example-voting-app_vote_1 ... done
Restarting redis ... done
DOCKER-COMPOSE RM
Commande : docker-compose rm
Supprimer les containers stoppés au préalable :
Si aucun service n'est spécifié, tous les containers stoppés de l'application seront supprimés.
docker-compose rm [SERVICE...]
ex :
$ docker-compose rm
Going to remove example-voting-app_worker_1, redis, db, example-voting-app_result_1, example-voting-app_vote_1
Are you sure? [yN] y
Removing example-voting-app_worker_1 ... done
Removing redis ... done
Removing db ... done
Removing example-voting-app_result_1 ... done
Removing example-voting-app_vote_1 ... done
Stopper et supprimer les containers :
Si aucun service n'est spécifié, tous les containers de l'application seront stoppés puis supprimés.
docker-compose rm -s [SERVICE...]
ex :
$ docker-compose rm -s
Stopping example-voting-app_worker_1 ... done
Stopping redis ... done
Stopping db ... done
Stopping example-voting-app_result_1 ... done
Stopping example-voting-app_vote_1 ... done
Going to remove example-voting-app_worker_1, redis, db, example-voting-app_result_1, example-voting-app_vote_1
Are you sure? [yN] y
Removing example-voting-app_worker_1 ... done
Removing redis ... done
Removing db ... done
Removing example-voting-app_result_1 ... done
Removing example-voting-app_vote_1 ... done
$ docker-compose rm -s vote
Stopping example-voting-app_vote_1 ... done
Going to remove example-voting-app_vote_1
Are you sure? [yN] y
Removing example-voting-app_vote_1 ... done
DOCKER-COMPOSE START
Commande : docker-compose start
Démarrer des services existants précédemment arrêtés :
Si aucun service n'est spécifié, tous les services de l'application seront démarrés.
docker-compose start [SERVICE...]
ex :
$ docker-compose start
Starting vote ... done
Starting result ... done
Starting redis ... done
Starting worker ... done
Starting db ... done
DOCKER-COMPOSE STOP
Commande : docker-compose stop
Arrêter les services de l'application :
Si aucun service n'est spécifié, tous les containers de l'application seront arrêtés.
Les containers ne seront pas supprimés, ils pourront être redémarrés avec la commande docker-compose start.
docker-compose stop [options] [SERVICE...]
ex :
$ docker-compose stop
Stopping db ... done
Stopping example-voting-app_result_1 ... done
Stopping example-voting-app_vote_1 ... done
Stopping example-voting-app_worker_1 ... done
Stopping redis ... done
DOCKER-COMPOSE TOP
Commande : docker-compose top
Afficher les processus en cours :
Si aucun service n'est spécifié, tous les processus en cours de tous les containers seront affichés.
docker-compose top [SERVICE...]
ex :
$ docker-compose top
db
UID PID PPID C STIME TTY TIME CMD
---------------------------------------------------------------------------------------------------------
vboxadd 16305 16244 0 22:26 ? 00:00:00 postgres
vboxadd 16866 16305 0 22:26 ? 00:00:00 postgres: checkpointer process
vboxadd 16867 16305 0 22:26 ? 00:00:00 postgres: writer process
vboxadd 16868 16305 0 22:26 ? 00:00:00 postgres: wal writer process
vboxadd 16869 16305 0 22:26 ? 00:00:00 postgres: autovacuum launcher process
vboxadd 16870 16305 0 22:26 ? 00:00:00 postgres: stats collector process
vboxadd 16872 16305 0 22:26 ? 00:00:01 postgres: postgres postgres 172.27.0.6(51422) idle
vboxadd 16876 16305 0 22:26 ? 00:00:00 postgres: postgres postgres 172.27.0.4(37812) idle
example-voting-app_result_1
UID PID PPID C STIME TTY TIME CMD
-----------------------------------------------------------------------------------------
root 16494 16456 0 22:26 ? 00:00:01 node /usr/local/bin/nodemon server.js
root 16798 16494 0 22:26 ? 00:00:00 /usr/local/bin/node server.js
example-voting-app_vote_1
UID PID PPID C STIME TTY TIME CMD
--------------------------------------------------------------------------------
root 16510 16483 0 22:26 ? 00:00:00 python app.py
root 16797 16510 1 22:26 ? 00:00:02 /usr/local/bin/python app.py
example-voting-app_worker_1
UID PID PPID C STIME TTY TIME CMD
-------------------------------------------------------------------------------------------
root 16724 16703 0 22:26 ? 00:00:00 /bin/sh -c dotnet src/Worker/Worker.dll
root 16777 16724 2 22:26 ? 00:00:04 dotnet src/Worker/Worker.dll
redis
UID PID PPID C STIME TTY TIME CMD
--------------------------------------------------------------------
systemd+ 16442 16412 0 22:26 ? 00:00:01 redis-server
DOCKER-COMPOSE UNPAUSE
Commande : docker-compose unpause
Sortir de pause les services spécifiés :
Si aucun service n'est spécifié, tous les services de l'application seront sortis de pause.
docker-compose unpause [SERVICE...]
ex :
$ docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------------------------------
db docker-entrypoint.sh postgres Up 5432/tcp
example-voting-app_result_1 nodemon server.js Up 0.0.0.0:5858->5858/tcp, 0.0.0.0:5001->80/tcp
example-voting-app_vote_1 python app.py Paused 0.0.0.0:5000->80/tcp
example-voting-app_worker_1 /bin/sh -c dotnet src/Work ... Up
redis docker-entrypoint.sh redis ... Up 0.0.0.0:32772->6379/tcp
$ docker-compose unpause vote
Unpausing example-voting-app_vote_1 ... done
$ docker-compose ps
Name Command State Ports
-------------------------------------------------------------------------------------------------------------------
db docker-entrypoint.sh postgres Up 5432/tcp
example-voting-app_result_1 nodemon server.js Up 0.0.0.0:5858->5858/tcp, 0.0.0.0:5001->80/tcp
example-voting-app_vote_1 python app.py Up 0.0.0.0:5000->80/tcp
example-voting-app_worker_1 /bin/sh -c dotnet src/Work ... Up
redis docker-entrypoint.sh redis ... Up 0.0.0.0:32772->6379/tcp
DOCKER-COMPOSE UP
Commande : docker-compose up
Démarrer une application ou des services en particulier :
Si aucun service n'est spécifié, ils seront tous démarrés dans l'ordre défini par les dépendances.
Si un service est spécifié, seul lui sera démarré, sauf s'il possède un ou plusieurs dépendances, auxquels cas ces dernières seront démarrées au préalable.
Sans l'option -d, ils seront démarrés au premier-plan.
Avec l'option -d, ils seront démarrés en arrière-plan (mode detach).
Avec l'option --no-deps, les dépendances ne sont pas démarrées au préalable.
docker-compose up [options] [SERVICE...]
ex :
$ docker-compose up -d
Creating network "example-voting-app_front-tier" with the default driver
Creating network "example-voting-app_back-tier" with the default driver
Creating example-voting-app_vote_1 ... done
Creating db ... done
Creating example-voting-app_result_1 ... done
Creating redis ... done
Creating example-voting-app_worker_1 ... done
$ docker-compose up -d worker
Creating network "example-voting-app_front-tier" with the default driver
Creating network "example-voting-app_back-tier" with the default driver
Creating redis ... done
Creating example-voting-app_worker_1 ... done
$ docker-compose up -d --no-deps worker
Creating network "example-voting-app_front-tier" with the default driver
Creating network "example-voting-app_back-tier" with the default driver
Creating example-voting-app_worker_1 ... done
Démarrer une application tout en reconstruisant les images (directive build) :
docker-compose up [options] --build [SERVICE...]
ex :
$ docker-compose up -d --build
Définir le fichier Docker Compose à utiliser :
Par défaut, Docker Compose utilise le fichier docker-compose.yml situé dans le répertoire courant.
On peut toutefois spécifier un fichier alternatif avec l'option -f (--file).
docker-compose -f filename [options] [SERVICE...]
ex :
$ docker-compose -f docker-compose-simple.yml up -d
Définir le working directory à utiliser :
Par défaut, Docker Compose utilise le répertoire courant comme répertoire de travail.
On peut toutefois spécifier un répertoire de travail alternatif avec l'option --project-directory.
docker-compose --project-directory directory [options] [SERVICE...]
ex :
$ docker-compose --project-directory compose-sample-1/ --file compose-sample-1/docker-compose.yml up -d
Scaler un service :
Si le service utilise l'instruction container_name pour nommer le container correspondant, il ne pourra pas être scalé : plusieurs containers ne peuvent pas avoir le même nom
Si le service expose un port particulier, il ne pourra pas être scalé : plusieurs containers ne peuvent pas utiliser le même port de la machine hôte.
docker-compose up [options] --scale service=N [SERVICE...]
ex :
$ docker-compose up -d --scale simulator=3
iot_collector_1 is up-to-date
iot_dashboard_1 is up-to-date
influx is up-to-date
Starting iot_simulator_1 ... done
Creating iot_simulator_2 ... done
Creating iot_simulator_3 ... done
$ docker-compose up -d --scale redis=2
...
ERROR: for redis Cannot create container for service redis: Conflict. The container name "/redis" is already in use by container "ff7ffbbebc3f4441a6b93c9a06389367b552b010bd62377931372ec2da0d4d59". You have to remove (or rename) that container to be able to reuse that name.
$ docker-compose up -d --scale vote=3
...
ERROR: for examplevotingapp_vote_3 Cannot start service vote: driver failed programming external connectivity on endpoint examplevotingapp_vote_3 (b520da97c5736c46bfb2c80947fd2643387df0e0f67bbe18c226bad006dc940e): Bind for 0.0.0.0:5000 failed: port is already allocated
Recréer les containers même si leur configuration ou leur image n'a pas changé :
docker-compose up [options] --force-recreate [SERVICE...]
ex :
$ docker-compose up -d --force-recreate
Recreating example-voting-app_vote_1 ... done
Recreating db ... done
Recreating example-voting-app_result_1 ... done
Recreating redis ... done
Recreating example-voting-app_worker_1 ... done
Ne pas démarrer les containers après avoir créé les services de l'application :
L'option -d ne peut pas être utilisée avec l'option --no-start.
docker-compose up [options] --no-start [SERVICE...]
ex :
$ docker-compose up --no-start
Creating network "example-voting-app_front-tier" with the default driver
Creating network "example-voting-app_back-tier" with the default driver
Creating example-voting-app_vote_1 ... done
Creating redis ... done
Creating db ... done
Creating example-voting-app_result_1 ... done
Creating example-voting-app_worker_1 ... done
$ docker-compose ps
Name Command State Ports
-----------------------------------------------------------------------------
db docker-entrypoint.sh postgres Exit 0
example-voting-app_result_1 nodemon server.js Exit 0
example-voting-app_vote_1 python app.py Exit 0
example-voting-app_worker_1 /bin/sh -c dotnet src/Work ... Exit 0
redis docker-entrypoint.sh redis ... Exit 0
Construire les images avant de démarrer les containers :
docker-compose up [options] --build [SERVICE...]
ex :
$ docker-compose up -d --build
Ne pas construire les images avant de démarrer les containers même si elles sont manquantes :
docker-compose up [options] --no-build [SERVICE...]
ex :
$ docker-compose up -d --no-build