Docker daemon on TCP port

I managed to get this to work using an Nginx container as a proxy. Generate TLS certs & keys as per the docker docs, then the Nginx config is:

user  root;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    keepalive_timeout  65;
    
    server {
      listen 2376;
      ssl on;
      ssl_certificate /etc/nginx/certs/rw/server-cert.pem;
      ssl_certificate_key /etc/nginx/certs/rw/server-key.pem;
      ssl_client_certificate /etc/nginx/certs/rw/ca.pem;
      ssl_verify_client on;
      location / {
        proxy_pass http://unix:/var/run/docker.sock:/;
      }
    }
    
    server {
      listen 2377;
      ssl on;
      ssl_certificate /etc/nginx/certs/ro/server-cert.pem;
      ssl_certificate_key /etc/nginx/certs/ro/server-key.pem;
      ssl_client_certificate /etc/nginx/certs/ro/ca.pem;
      ssl_verify_client on;
      location / {
        limit_except GET {
          deny all;
        }
        proxy_pass http://unix:/var/run/docker.sock:/;  
        
      }
    }
    
    
    
}