tcp-proxy
Download
load_module modules/ngx_stream_module.so;

user  nginx;
worker_processes auto;

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

events {
    worker_connections 1024;
}

stream {
    log_format main '$remote_addr [$time_local] $protocol $status $bytes_sent $bytes_received $session_time';
    access_log /var/log/nginx/access.log main;

    upstream my-tcp-app {
        server my-tcp-app:9000;
    }

    server {
        listen 9000 so_keepalive=on;
        proxy_pass my-tcp-app;
    }
}
docker run --detach --name nginx-tcp-proxy \
    --volume "${PWD}/tcp-proxy.conf:/etc/nginx/nginx.conf" \
    --publish "9000:9000" \
    --workdir "/usr/share/nginx/" \
    nginx
telnet localhost 9000
docker stop nginx-tcp-proxy
docker rm nginx-tcp-proxy