diff --git a/Dockerfile.python-3.10 b/Dockerfile.python-3.10
new file mode 100644
index 0000000000000000000000000000000000000000..8a188617897db389ecea322a0ce59296b2263eb2
--- /dev/null
+++ b/Dockerfile.python-3.10
@@ -0,0 +1,18 @@
+ARG BASE_IMAGE=registry.git.rwth-aachen.de/jupyter/profiles/rwth-courses-python-3.10:latest
+FROM ${BASE_IMAGE}
+
+ARG conda_env=python310
+ARG py_ver=3.10
+ARG disp_name="Python 3.10 (ipykernel)"
+
+# Install packages via requirements.txt
+ADD requirements.txt .
+RUN "${CONDA_DIR}/envs/${conda_env}/bin/pip" install --no-cache-dir -r requirements.txt
+
+# .. Or update conda base environment to match specifications in environment.yml
+ADD environment.yml /tmp/environment.yml
+
+# All packages specified in environment.yml are installed in the base environment
+RUN mamba env update -n "${conda_env}" -f /tmp/environment.yml && \
+    mamba clean -a -f -y
+
diff --git a/Dockerfile.python-3.11 b/Dockerfile.python-3.11
new file mode 100644
index 0000000000000000000000000000000000000000..2ba3395103f0dc536ee1bbb52e7acc2d964f2203
--- /dev/null
+++ b/Dockerfile.python-3.11
@@ -0,0 +1,18 @@
+ARG BASE_IMAGE=registry.git.rwth-aachen.de/jupyter/profiles/rwth-courses-python-3.11:latest
+FROM ${BASE_IMAGE}
+
+ARG conda_env=python311
+ARG py_ver=3.11
+ARG disp_name="Python 3.11 (ipykernel)"
+
+# Install packages via requirements.txt
+ADD requirements.txt .
+RUN "${CONDA_DIR}/envs/${conda_env}/bin/pip" install --no-cache-dir -r requirements.txt
+
+# .. Or update conda base environment to match specifications in environment.yml
+ADD environment.yml /tmp/environment.yml
+
+# All packages specified in environment.yml are installed in the base environment
+RUN mamba env update -n "${conda_env}" -f /tmp/environment.yml && \
+    mamba clean -a -f -y
+
diff --git a/Dockerfile.python-3.12 b/Dockerfile.python-3.12
new file mode 100644
index 0000000000000000000000000000000000000000..cc62e54bb1992e332973e15fd04eb09d782a2aea
--- /dev/null
+++ b/Dockerfile.python-3.12
@@ -0,0 +1,17 @@
+ARG BASE_IMAGE=registry.git.rwth-aachen.de/jupyter/profiles/rwth-courses-python-3.12:latest
+FROM ${BASE_IMAGE}
+
+ARG conda_env=python312
+ARG py_ver=3.12
+ARG disp_name="Python 3.12 (ipykernel)"
+
+# Install packages via requirements.txt
+ADD requirements.txt .
+RUN "${CONDA_DIR}/envs/${conda_env}/bin/pip" install --no-cache-dir -r requirements.txt
+
+# .. Or update conda base environment to match specifications in environment.yml
+ADD environment.yml /tmp/environment.yml
+
+# All packages specified in environment.yml are installed in the base environment
+RUN mamba env update -n "${conda_env}" -f /tmp/environment.yml && \
+    mamba clean -a -f -y
diff --git a/Dockerfile.python-3.13 b/Dockerfile.python-3.13
new file mode 100644
index 0000000000000000000000000000000000000000..88b2b5a8f68efb5d52fa31a670f1bbccc1c75907
--- /dev/null
+++ b/Dockerfile.python-3.13
@@ -0,0 +1,18 @@
+ARG BASE_IMAGE=registry.git.rwth-aachen.de/jupyter/profiles/rwth-courses-python-3.13:latest
+FROM ${BASE_IMAGE}
+
+ARG conda_env=python313
+ARG py_ver=3.13
+ARG disp_name="Python 3.13 (ipykernel)"
+
+# Install packages via requirements.txt
+ADD requirements.txt .
+RUN "${CONDA_DIR}/envs/${conda_env}/bin/pip" install --no-cache-dir -r requirements.txt
+
+# .. Or update conda base environment to match specifications in environment.yml
+ADD environment.yml /tmp/environment.yml
+
+# All packages specified in environment.yml are installed in the base environment
+RUN mamba env update -n "${conda_env}" -f /tmp/environment.yml && \
+    mamba clean -a -f -y
+