Как правильно запустить nginx in docker swarm на MacOS? - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть как файлы компоновки, так и стека с 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"

вот настройки сети 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>

1 Ответ

1 голос
/ 28 февраля 2020

попробуйте что-то вроде этого

version: '3.7'

networks:
  custom_overlay_network:


services:

  nginx:
    image: nginx:alpine
    hostname: nginx
    restart: always
    ports:
      - 80:80
    networks:
      - custom_overlay_network


...