diff --git a/installers/install_docker_ce.sh b/installers/install_docker_ce.sh
index 5c0cc6d..e5c2f44 100755
--- a/installers/install_docker_ce.sh
+++ b/installers/install_docker_ce.sh
@@ -18,37 +18,24 @@
 function install_docker_ce() {
     # installs and configures Docker CE
     [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
+    echo "Removing previous installation of docker ..."
+    for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
     echo "Installing Docker CE ..."
-    sudo apt-get -qq update
-    sudo apt-get install -y apt-transport-https ca-certificates software-properties-common
-    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add -
-    sudo add-apt-repository -y "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
-    sudo apt-get -qq update
+    sudo apt-get -y update
+    sudo apt-get install -y apt-transport-https ca-certificates software-properties-common gnupg
+    sudo install -m 0755 -d /etc/apt/keyrings
+    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
+    sudo chmod a+r /etc/apt/keyrings/docker.gpg
+    echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
+    "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
+    sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
+    sudo apt-get -y update
     sudo apt-get install -y docker-ce
-#    echo "Reconfiguring Docker to use systemd as cgroup driver"
-#    if [ ! -f /etc/docker/daemon.json ]; then
-#        sudo bash -c "cat <<EOF > /etc/docker/daemon.json
-#{
-#  \"exec-opts\": [\"native.cgroupdriver=systemd\"],
-#  \"log-driver\": \"json-file\",
-#  \"log-opts\": {
-#    \"max-size\": \"100m\"
-#  },
-#  \"storage-driver\": \"overlay2\"
-#}
-#EOF"
-#    else
-#        sudo sed -i "s|native.cgroupdriver=cgroupfs|native.cgroupdriver=systemd|" /etc/docker/daemon.json
-#    fi
+
     echo "Adding user to group 'docker'"
     sudo groupadd -f docker
     sudo usermod -aG docker $USER
-    sleep 2
-    #sudo systemctl enable docker
-    #sudo systemctl daemon-reload
-    #sudo systemctl restart docker
-    sudo service docker restart
-    echo "... restarted Docker service"
+
     if [ -n "${DOCKER_PROXY_URL}" ]; then
         echo "Configuring docker proxy ..."
         if [ -f /etc/docker/daemon.json ]; then
@@ -83,24 +70,24 @@
 EOF"
     fi
     if [ -n "${DOCKER_PROXY_URL}" ] || [ -n "${OSM_BEHIND_PROXY}" ] ; then
-        #sudo systemctl enable docker
         sudo systemctl daemon-reload
-        #sudo systemctl restart docker
-        sudo service docker restart
-        echo "... restarted Docker service again"
+        sudo systemctl restart docker
+        echo "... restarted Docker service"
     fi
 
+    echo "Configuring containerd to expose CRI, use systemd cgroup and use DOCKER_PROXY_URL as registry mirror"
+    sudo mv /etc/containerd/config.toml /etc/containerd/config.toml.orig 2>/dev/null
+    sudo bash -c "containerd config default > /etc/containerd/config.toml"
+    sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
     if [ -n "${DOCKER_PROXY_URL}" ]; then
-        echo "Configuring containerd"
-        sudo mv /etc/containerd/config.toml /etc/containerd/config.toml.orig 2>/dev/null
-        sudo bash -c "containerd config default > /etc/containerd/config.toml"
         sudo sed -i "s#\[plugins.\"io.containerd.grpc.v1.cri\".registry.mirrors\]#\[plugins.\"io.containerd.grpc.v1.cri\".registry.mirrors\]\n        \[plugins.\"io.containerd.grpc.v1.cri\".registry.mirrors.\"docker.io\"\]\n          endpoint = \[\"${DOCKER_PROXY_URL}\"\]\n        \[plugins.\"io.containerd.grpc.v1.cri\".registry.mirrors.\"registry.hub.docker.com\"]\n          endpoint = \[\"${DOCKER_PROXY_URL}\"]#" /etc/containerd/config.toml
-        sudo diff /etc/containerd/config.toml.orig /etc/containerd/config.toml
-        sudo service containerd restart
     fi
+    sudo systemctl restart containerd
 
     [ -z "${DEBUG_INSTALL}" ] || ! echo "File: /etc/docker/daemon.json" || cat /etc/docker/daemon.json
-    sg docker -c "docker version" || FATAL "Docker installation failed"
+    echo "Testing Docker CE installation ..."
+    sg docker -c "docker version" || FATAL_TRACK docker_ce "Docker installation failed. Cannot run docker version"
+    sg docker -c "docker run --rm hello-world" || FATAL_TRACK docker_ce "Docker installation failed. Cannot run hello-world"
     echo "... Docker CE installation done"
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
     return 0
