diff --git a/doc/functions/dockertools.xml b/doc/functions/dockertools.xml
index 3e9281557d511f..a284182bb047c1 100644
--- a/doc/functions/dockertools.xml
+++ b/doc/functions/dockertools.xml
@@ -312,7 +312,23 @@ hello latest de2bf4786de6 About a minute ago 25.2MB
Maximum number of layers to create.
- Default: 24
+ Default: 100
+
+
+ Maximum: 125
+
+
+
+
+
+ extraCommands optional
+
+
+
+ Shell commands to run while building the final layer, without access
+ to most of the layer contents. Changes to this layer are "on top"
+ of all the other layers, so can create additional directories
+ and files.
diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix
index ae3d93ff3db392..83e21c8945dc51 100644
--- a/pkgs/build-support/docker/default.nix
+++ b/pkgs/build-support/docker/default.nix
@@ -291,9 +291,10 @@ rec {
# Files to add to the layer.
closure,
configJson,
- # Docker has a 42-layer maximum, we pick 24 to ensure there is plenty
- # of room for extension
- maxLayers ? 24
+ # Docker has a 125-layer maximum, we pick 100 to ensure there is
+ # plenty of room for extension.
+ # https://github.com/moby/moby/blob/b3e9f7b13b0f0c414fa6253e1f17a86b2cff68b5/layer/layer_store.go#L23-L26
+ maxLayers ? 100
}:
let
storePathToLayer = substituteAll