Exponga un socket Unix al sistema host desde el interior de un contenedor Docker

Me gustaría ejecutar un servidor web dentro de un contenedor Docker que escuche un socket Unix, en lugar de un puerto. Estoy encontrando muchos resultados al compartir el socket Docker, pero no creo que eso sea lo que quiero.

Quiero que el sistema host pueda conectarse al socket Unix que se está escuchando dentro del contenedor.

Estoy usando docker-compose, por lo que la forma habitual de usar -v no funciona.

Configuración de mi sitio ngix:

server {                                                                                                listen 80; listen [::]:80;                                                                server_name foo.com www.foo.com;    location / {                                                                                 proxy_pass http://unix:/var/lib/docker/volumes/app_shared/_data/app.https.sock:;               proxy_set_header Host $http_host;                                                                    proxy_http_version 1.1;                                                                              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;                                         proxy_set_header X-Forwarded-Proto https;                                                        } 

docker-compose.yml

version: '3'services:        web:    build: .    volumes:            - shared:/var/app    command: "npm start"volumes:   shared:

Sin embargo, dice que no puedo conectarme al socket, a pesar de que existe en esta ubicación en el host.

Puede comunicar la máquina host o incluso dos contenedores utilizando el mismo socket. En el caso general de dos contenedores, debe iniciar las dos ventanas acoplables desde la máquina host que comparte un volumen que debe crearse en la máquina host.

docker run --name "containerA" -v /var/run/common_socket_dir:/var/run/common_socket_dir...docker run --name "containerB" -v /var/run/common_socket_dir:/var/run/common_socket_dir...

Tanto ContainerA como containerB ahora pueden usar sockets como /var/run/common_socket_dir/socketX para interconectarse. Por supuesto, la máquina host podría usar los sockets de este volumen para comunicarse con los contenedores