繁体   English   中英

如何在 MacOS 上的 docker swarm 中正确运行 nginx?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM