[英]How to properly run nginx in docker swarm on MacOS?
我有 nginx 服务作为撰写和堆栈文件
networks:
custom_overlay_network:
external: true
services:
proxy:
image: nginx:alpine
ports:
- target: 80
published: 80
protocol: tcp
mode: host
networks:
- custom_overlay_network
我也尝试过短端口变体:
ports:
- "80:80"
这是 swarm 中的网络设置 nginx 服务(有/没有mode: host
)
"NetworkSettings": {
"Bridge": "",
"SandboxID": "c8d0dbff010c840f79d3e6c7ab7c0a225312ae6e28945e310a5f433f23baaadb",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"80/tcp": null
},
"SandboxKey": "/var/run/docker/netns/c8d0dbff010c",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "",
...
这里是在撰写模式下设置 nginx 服务
"NetworkSettings": {
"Bridge": "",
"SandboxID": "22510ac75ac8e48f2c555d2bfc71ab47928ece59445b0db593eab882e26251e2",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"80/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "80"
}
]
},
"SandboxKey": "/var/run/docker/netns/22510ac75ac8",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
当我以撰写方式运行服务时 - 我可以访问http://localhost
内容
但是如果我以群模式运行服务 - 我无法访问http://localhost
我也无法访问http://<network IP address>
尝试这样的事情
version: '3.7'
networks:
custom_overlay_network:
services:
nginx:
image: nginx:alpine
hostname: nginx
restart: always
ports:
- 80:80
networks:
- custom_overlay_network
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.