diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml
index 089cea7c14c1..11d079ea5810 100644
--- a/.gitlab-ci.d/containers.yml
+++ b/.gitlab-ci.d/containers.yml
@@ -48,18 +48,6 @@ amd64-debian11-container:
   variables:
     NAME: debian11
 
-amd64-debian9-container:
-  <<: *container_job_definition
-  variables:
-    NAME: debian9
-
-amd64-debian9-mxe-container:
-  <<: *container_job_definition
-  stage: containers-layer2
-  needs: ['amd64-debian9-container']
-  variables:
-    NAME: debian9-mxe
-
 alpha-debian-cross-container:
   <<: *container_job_definition
   stage: containers-layer2
diff --git a/tests/docker/dockerfiles/debian-win32-cross.docker b/tests/docker/dockerfiles/debian-win32-cross.docker
deleted file mode 100644
index b045e821b910..000000000000
--- a/tests/docker/dockerfiles/debian-win32-cross.docker
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# Docker mingw32 cross-compiler target
-#
-# This docker target builds on the debian Stretch MXE base image.
-#
-FROM qemu/debian9-mxe
-
-MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
-
-ENV TARGET i686
-
-ENV PATH $PATH:/usr/lib/mxe/usr/bin:/usr/lib/mxe/usr/$TARGET-w64-mingw32.shared/bin
-
-ENV PKG_CONFIG_PATH \
-    $PKG_CONFIG_PATH:/usr/lib/mxe/usr/$TARGET-w64-mingw32.shared/lib/pkgconfig
-
-RUN apt-get update && \
-    DEBIAN_FRONTEND=noninteractive eatmydata \
-    apt-get install -y --no-install-recommends \
-        mxe-$TARGET-w64-mingw32.shared-bzip2 \
-        mxe-$TARGET-w64-mingw32.shared-curl \
-        mxe-$TARGET-w64-mingw32.shared-glib \
-        mxe-$TARGET-w64-mingw32.shared-libgcrypt \
-        mxe-$TARGET-w64-mingw32.shared-libusb1 \
-        mxe-$TARGET-w64-mingw32.shared-lzo \
-        mxe-$TARGET-w64-mingw32.shared-nettle \
-        mxe-$TARGET-w64-mingw32.shared-ncurses \
-        mxe-$TARGET-w64-mingw32.shared-nsis \
-        mxe-$TARGET-w64-mingw32.shared-pixman \
-        mxe-$TARGET-w64-mingw32.shared-pkgconf \
-        mxe-$TARGET-w64-mingw32.shared-pthreads \
-        mxe-$TARGET-w64-mingw32.shared-sdl2 \
-        mxe-$TARGET-w64-mingw32.shared-sdl2-mixer \
-        mxe-$TARGET-w64-mingw32.shared-sdl2-gfx \
-        mxe-$TARGET-w64-mingw32.shared-zlib
-
-# Specify the cross prefix for this image (see tests/docker/common.rc)
-ENV QEMU_CONFIGURE_OPTS --cross-prefix=$TARGET-w64-mingw32.shared-
diff --git a/tests/docker/dockerfiles/debian-win64-cross.docker b/tests/docker/dockerfiles/debian-win64-cross.docker
deleted file mode 100644
index 4cc4a3f3657f..000000000000
--- a/tests/docker/dockerfiles/debian-win64-cross.docker
+++ /dev/null
@@ -1,45 +0,0 @@
-#
-# Docker mingw64 cross-compiler target
-#
-# This docker target builds on the debian Stretch MXE base image.
-#
-FROM qemu/debian9-mxe
-
-MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
-
-ENV TARGET x86-64
-
-ENV PATH $PATH:/usr/lib/mxe/usr/$TARGET-w64-mingw32.shared/bin
-
-ENV PKG_CONFIG_PATH \
-    $PKG_CONFIG_PATH:/usr/lib/mxe/usr/$TARGET-w64-mingw32.shared/lib/pkgconfig
-
-RUN apt-get update && \
-    DEBIAN_FRONTEND=noninteractive eatmydata \
-    apt-get install -y --no-install-recommends \
-        mxe-$TARGET-w64-mingw32.shared-bzip2 \
-        mxe-$TARGET-w64-mingw32.shared-curl \
-        mxe-$TARGET-w64-mingw32.shared-glib \
-        mxe-$TARGET-w64-mingw32.shared-libgcrypt \
-        mxe-$TARGET-w64-mingw32.shared-libusb1 \
-        mxe-$TARGET-w64-mingw32.shared-lzo \
-        mxe-$TARGET-w64-mingw32.shared-nettle \
-        mxe-$TARGET-w64-mingw32.shared-ncurses \
-        mxe-$TARGET-w64-mingw32.shared-nsis \
-        mxe-$TARGET-w64-mingw32.shared-pixman \
-        mxe-$TARGET-w64-mingw32.shared-pkgconf \
-        mxe-$TARGET-w64-mingw32.shared-pthreads \
-        mxe-$TARGET-w64-mingw32.shared-sdl2 \
-        mxe-$TARGET-w64-mingw32.shared-sdl2-mixer \
-        mxe-$TARGET-w64-mingw32.shared-sdl2-gfx \
-        mxe-$TARGET-w64-mingw32.shared-zlib \
-        curl && \
-    curl -s -S -o /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/include/WinHvEmulation.h \
-        "https://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/mingw-w64-headers/include/winhvemulation.h?format=raw" && \
-    curl -s -S -o /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/include/WinHvPlatform.h \
-        "https://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/mingw-w64-headers/include/winhvplatform.h?format=raw" && \
-    curl -s -S -o /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/include/winhvplatformdefs.h \
-        "https://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/mingw-w64-headers/include/winhvplatformdefs.h?format=raw"
-
-# Specify the cross prefix for this image (see tests/docker/common.rc)
-ENV QEMU_CONFIGURE_OPTS --cross-prefix=x86_64-w64-mingw32.shared-
diff --git a/tests/docker/dockerfiles/debian9-mxe.docker b/tests/docker/dockerfiles/debian9-mxe.docker
deleted file mode 100644
index ae2c222a6f08..000000000000
--- a/tests/docker/dockerfiles/debian9-mxe.docker
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# Docker mingw cross-compiler target
-#
-# This docker target builds on the debian Stretch base image.
-#
-FROM qemu/debian9
-
-MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
-
-RUN DEBIAN_FRONTEND=noninteractive eatmydata \
-    apt install -y --no-install-recommends gnupg dirmngr
-
-# Add the foreign architecture we want and install dependencies
-RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C6BF758A33A3A276 && \
-    echo "deb http://pkg.mxe.cc/repos/apt stretch main" > /etc/apt/sources.list.d/mxeapt.list
-RUN apt-get update && \
-    DEBIAN_FRONTEND=noninteractive eatmydata \
-    apt-get install -y --no-install-recommends \
-        $(apt-get -s install -y --no-install-recommends gw32.shared-mingw-w64 | egrep "^Inst mxe-x86-64-unknown-" | cut -d\  -f2)
-
-ENV PATH $PATH:/usr/lib/mxe/usr/bin/
diff --git a/tests/docker/dockerfiles/debian9.docker b/tests/docker/dockerfiles/debian9.docker
deleted file mode 100644
index 3edb5147ef3e..000000000000
--- a/tests/docker/dockerfiles/debian9.docker
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-# Docker multiarch cross-compiler target
-#
-# This docker target is builds on Debian cross compiler targets to build distro
-# with a selection of cross compilers for building test binaries.
-#
-# On its own you can't build much but the docker-foo-cross targets
-# build on top of the base debian image.
-#
-FROM debian:stretch-slim
-
-# Duplicate deb line as deb-src
-RUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list
-
-# Install common build utilities
-RUN apt update && \
-    DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
-    DEBIAN_FRONTEND=noninteractive eatmydata \
-    apt install -y --no-install-recommends \
-        bc \
-        build-essential \
-        ca-certificates \
-        clang \
-        gdb-multiarch \
-        gettext \
-        git \
-        libncurses5-dev \
-        pkg-config \
-        psmisc \
-        python3 \
-        python3-setuptools \
-        $(apt-get -s build-dep qemu | egrep ^Inst | fgrep '[all]' | cut -d\  -f2)
