diff --git a/release/docker/duniter.sh b/release/docker/duniter.sh
index d224e45249af677af166c7c3a7b03061ad7ff9e1..7a8aab3eac6ffd0391baa3a8f70d19c9d22ea8f1 100755
--- a/release/docker/duniter.sh
+++ b/release/docker/duniter.sh
@@ -1,7 +1,20 @@
 #!/bin/sh
+
+# Terminate gracefully on SIGTERM by propagating it to the 'node' process
+sigterm () {
+  echo "Received SIGTERM. Terminating..." >&2
+  pkill node
+  wait %1
+}
+trap 'sigterm' TERM
+
+# Main
 cd /duniter
 if [ "$1" != --home ]; then
   set -- --home /var/lib/duniter "$@"
 fi
-exec bin/duniter "$@"
 
+# Launch in background and wait
+# This way we can catch SIGTERM
+bin/duniter "$@" &
+wait %1