Dra*_*sil 7 socket docker-compose
我想在侦听 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)
然而它说我无法连接到套接字,即使它存在于主机的这个位置。
您可以使用同一个套接字与主机甚至两个容器进行通信。在两个容器的一般情况下,您应该从主机启动两个 docker,共享一个应该在主机中创建的卷。
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...
Run Code Online (Sandbox Code Playgroud)
容器 A 和容器 B 现在都可以使用套接字作为 /var/run/common_socket_dir/socketX 来互连。当然,宿主机可以使用这个卷中的套接字与容器进行通信
| 归档时间: |
|
| 查看次数: |
10360 次 |
| 最近记录: |