private void shutdown(ContainerTracker.ContainerShutdownDescriptor descriptor, boolean keepContainer, boolean removeVolumes)
        throws DockerAccessException, ExecException {

        String containerId = descriptor.getContainerId();
        StopMode stopMode = descriptor.getStopMode();
        if (descriptor.getPreStop() != null) {
            try {
                execInContainer(containerId, descriptor.getPreStop(), descriptor.getImageConfiguration());
            } catch (DockerAccessException e) {
                log.error("%s", e.getMessage());
            } catch (ExecException e) {
                if (descriptor.isBreakOnError()) {
                    throw e;
                } else {
                    log.warn("Cannot run preStop: %s", e.getMessage());
                }
            }
        }

        if (stopMode.equals(StopMode.graceful)) {
            int killGracePeriod = adjustGracePeriod(descriptor.getKillGracePeriod());
            log.debug("shutdown will wait max of %d seconds before removing container", killGracePeriod);

            long waited;
            if (killGracePeriod == 0) {
                docker.stopContainer(containerId, 0);
                waited = 0;
            } else {
                waited = shutdownAndWait(containerId, killGracePeriod);
            }
            log.info("%s: Stop%s container %s after %s ms",
                    descriptor.getDescription(),
                    (keepContainer ? "" : " and removed"),
                    containerId.substring(0, 12), waited);
        } else if (stopMode.equals(StopMode.kill)) {
            docker.killContainer(containerId);
            log.info("%s: Killed%s container %s.",
                    descriptor.getDescription(),
                    (keepContainer ? "" : " and removed"),
                    containerId.subSequence(0, 12));
        }
        if (!keepContainer) {
            removeContainer(descriptor, removeVolumes, containerId);
        }


    }
Add a shutdown hook in order to stop all registered containers
src/main/java/io/fabric8/maven/docker/service/RunService.java