I am trying to install docker to my VPS server, but the docker never start after installed by following the official guide. The VPS virtualization service is using OpenVZ.
This is what will happen when using sudo systemctl restart docker to start docker service
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xe" for details.
The kernel version uname -r
4.19.0
Debian version lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster
systemctl status docker.service output this error messages
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2025-03-06 11:03:31 EST; 2min 27s ago
Docs: https://docs.docker.com
Process: 1359 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
Main PID: 1359 (code=exited, status=1/FAILURE)
I use sudo dockerd --debug command to check the error messages
INFO[2025-03-06T10:56:17.087667496-05:00] Starting up
DEBU[2025-03-06T10:56:17.088185236-05:00] Listener created for HTTP on unix (/var/run/docker.sock)
DEBU[2025-03-06T10:56:17.102910957-05:00] Golang's threads limit set to 1390230
DEBU[2025-03-06T10:56:17.103578106-05:00] metrics API listening on /var/run/docker/metrics.sock
DEBU[2025-03-06T10:56:17.109502579-05:00] Using default logging driver json-file
DEBU[2025-03-06T10:56:17.109734535-05:00] No quota support for local volumes in /var/lib/docker/volumes: Filesystem does not support, or has not enabled quotas
DEBU[2025-03-06T10:56:17.110193850-05:00] processing event stream module=libcontainerd namespace=plugins.moby
DEBU[2025-03-06T10:56:17.111249274-05:00] [graphdriver] priority list: [overlay2 fuse-overlayfs btrfs zfs vfs]
DEBU[2025-03-06T10:56:17.120617796-05:00] successfully detected metacopy status storage-driver=overlay2 usingMetacopy=false
DEBU[2025-03-06T10:56:17.131551027-05:00] backingFs=extfs, projectQuotaSupported=false, usingMetacopy=false, indexOff="", userxattr="" storage-driver=overlay2
INFO[2025-03-06T10:56:17.131695779-05:00] [graphdriver] using prior storage driver: overlay2
DEBU[2025-03-06T10:56:17.131836181-05:00] Initialized graph driver overlay2
DEBU[2025-03-06T10:56:17.132120466-05:00] Max Concurrent Downloads: 3
DEBU[2025-03-06T10:56:17.132214204-05:00] Max Concurrent Uploads: 5
DEBU[2025-03-06T10:56:17.132296633-05:00] Max Download Attempts: 5
INFO[2025-03-06T10:56:17.132392715-05:00] Loading containers: start.
DEBU[2025-03-06T10:56:17.132577678-05:00] Option DefaultDriver: bridge
DEBU[2025-03-06T10:56:17.132661812-05:00] Option DefaultNetwork: bridge
DEBU[2025-03-06T10:56:17.132746511-05:00] Network Control Plane MTU: 1500
DEBU[2025-03-06T10:56:17.133813709-05:00] processing event stream module=libcontainerd namespace=moby
DEBU[2025-03-06T10:56:17.136435742-05:00] /usr/sbin/iptables, [--wait -t filter -C FORWARD -j DOCKER-ISOLATION]
DEBU[2025-03-06T10:56:17.137583060-05:00] /usr/sbin/iptables, [--wait -t nat -D PREROUTING -m addrtype --dst-type LOCAL -j DOCKER]
DEBU[2025-03-06T10:56:17.138847173-05:00] /usr/sbin/iptables, [--wait -t nat -D OUTPUT -m addrtype --dst-type LOCAL ! --dst 127.0.0.0/8 -j DOCKER]
DEBU[2025-03-06T10:56:17.140072153-05:00] /usr/sbin/iptables, [--wait -t nat -D OUTPUT -m addrtype --dst-type LOCAL -j DOCKER]
DEBU[2025-03-06T10:56:17.141284333-05:00] /usr/sbin/iptables, [--wait -t nat -D PREROUTING]
DEBU[2025-03-06T10:56:17.142447287-05:00] /usr/sbin/iptables, [--wait -t nat -D OUTPUT]
DEBU[2025-03-06T10:56:17.143600060-05:00] /usr/sbin/iptables, [--wait -t nat -F DOCKER]
DEBU[2025-03-06T10:56:17.144718926-05:00] /usr/sbin/iptables, [--wait -t nat -X DOCKER]
DEBU[2025-03-06T10:56:17.145966887-05:00] /usr/sbin/iptables, [--wait -t filter -F DOCKER]
DEBU[2025-03-06T10:56:17.147026336-05:00] /usr/sbin/iptables, [--wait -t filter -X DOCKER]
DEBU[2025-03-06T10:56:17.148112456-05:00] /usr/sbin/iptables, [--wait -t filter -F DOCKER-ISOLATION-STAGE-1]
DEBU[2025-03-06T10:56:17.149296048-05:00] /usr/sbin/iptables, [--wait -t filter -X DOCKER-ISOLATION-STAGE-1]
DEBU[2025-03-06T10:56:17.150407834-05:00] /usr/sbin/iptables, [--wait -t filter -F DOCKER-ISOLATION-STAGE-2]
DEBU[2025-03-06T10:56:17.151454249-05:00] /usr/sbin/iptables, [--wait -t filter -X DOCKER-ISOLATION-STAGE-2]
DEBU[2025-03-06T10:56:17.152469875-05:00] /usr/sbin/iptables, [--wait -t filter -F DOCKER-ISOLATION]
DEBU[2025-03-06T10:56:17.153494756-05:00] /usr/sbin/iptables, [--wait -t filter -X DOCKER-ISOLATION]
DEBU[2025-03-06T10:56:17.154547101-05:00] /usr/sbin/iptables, [--wait -t nat -n -L DOCKER]
DEBU[2025-03-06T10:56:17.155598571-05:00] /usr/sbin/iptables, [--wait -t nat -N DOCKER]
DEBU[2025-03-06T10:56:17.156680350-05:00] daemon configured with a 15 seconds minimum shutdown timeout
DEBU[2025-03-06T10:56:17.156776066-05:00] start clean shutdown of all containers with a 15 seconds timeout...
DEBU[2025-03-06T10:56:17.157286296-05:00] Cleaning up old mountid : start.
DEBU[2025-03-06T10:56:17.157516344-05:00] Cleaning up old mountid : done.
failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to register "bridge" driver: failed to create NAT chain DOCKER: iptables failed: iptables --wait -t nat -N DOCKER: iptables v1.8.2 (legacy): can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
(exit status 3)
I also run sudo iptables -V to check for the iptables version
iptables v1.8.2 (legacy)