After managing to install failed packages, docker-ce remained to be failed.
With this command:
journalctl -fu docker
There was an error log which contained:
level=error msg="AUFS was not found in /proc/filesystems" storage-driver=aufs
So AUFS seems not supported with current environment. Searched for info about similar issues, it looks switching to overlay2 is one way to resolve this unless I want to explicitly setup AUFS support.
I could see it works by
service docker stop
dockerd --storage-driver-overlay2
To specify this in config file, I followed https://docs.docker.com/storage/storagedriver/overlayfs-driver/ and added /etc/docker/daemon.json to use overlay2 as storage driver (exactly same from the documentation):
{
"storage-driver": "overlay2"
}
Then restarted docker service with this successfully:
systemctl restart docker
And
docker run hello-world
worked.