我想在侦听 Unix 套接字而不是端口的 Docker 容器中运行一个 web 服务器。我在共享 Docker 套接字方面发现了很多结果,但我认为这不是我想要的。
我希望主机系统能够连接到容器内正在侦听的 Unix 套接字。
我正在使用 docker-compose,所以通常的使用方式-v不起作用。
我的 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;
}
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml
version: '3'
services:
web:
build: .
volumes:
- shared:/var/app
command: "npm start"
volumes:
shared:
Run Code Online (Sandbox Code Playgroud)
然而它说我无法连接到套接字,即使它存在于主机的这个位置。