Как сделать nginx работающим в качестве службы докера доступной с хоста? - PullRequest
0 голосов
/ 22 ноября 2018

Не для производства.Я смог запустить nginx в контейнере примерно так:

# docker run --rm -itp 4000:80 nginx
# curl localhost:4000
<outputs welcome page>

Но с помощью docker compose он не работает:

docker-compose.yml:

version: '3'

services:
  nginx:
    image: nginx:stable
    ports:
      - "4001:80"

Тогда

# docker stack deploy -c docker-compose.yml s1
# curl localhost:4001
<hangs>

Но это работает так:

# curl DOCKER0_IP:4001

или

# curl DOCKER_GWBRIDGE:4001

Я использую Arch Linux.

docker stack ls:

NAME                SERVICES            ORCHESTRATOR
s1                  1                   Swarm

docker stack ps s1:

ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE            ERROR               PORTS
s9en6oyoj338        s1_nginx.1          nginx:stable        yuri                Running             Running 13 seconds ago

pacman -Qs docker | sed 'n;d':

local/docker 1:18.09.0-2

docker service ls:

ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
710d1lrq7phh        s1_nginx            replicated          1/1                 nginx:stable        *:4001->80/tcp
...