在数字海洋上为Docker Swarm配置防火墙设置

时间:2017-08-15 21:07:16

标签: linux docker digital-ocean

如何配置数字海洋箱以获得正确的防火墙设置?

我已经跟随official guide了解了Digital Ocean和Docker容器的协同工作。

我在docker-machine ls时可以看到3个泊坞节点。我创建了一个主docker节点,并将其他docker节点作为worker加入。但是,如果我尝试访问节点的URL,则连接会挂起。此设置适用于本地。

这是我用于制作的docker-compose。

version: "3"

services:
  api:
    image: "api"
    command: rails server -b "0.0.0.0" -e production
    depends_on:
      - db
      - redis
    deploy:
      replicas: 3
      resources:
        cpus: "0.1"
        memory: 50M
      restart_policy:
        condition: on-failure
    env_file:
      - .env-prod
    networks:
      - apinet
    ports:
      - "3000:3000"
  client:
    image: "client"
    depends_on:
      - api
    deploy:
      restart_policy:
        condition: on-failure
    env_file:
      - .env-prod
    networks:
      - apinet
      - clientnet
    ports:
      - "4200:4200"
      - "35730:35730"
  db:
    deploy:
      placement:
        constaints: [node.role == manager]
      restart_policy:
        condition: on-failure
    env_file: .env-prod
    image: mysql
    ports:
      - "3306:3306"
    volumes:
      - ~/.docker-volumes/app/mysql/data:/var/lib/mysql/data
  redis:
    deploy:
      placement:
        constaints: [node.role == manager]
      restart_policy:
        condition: on-failure
    image: redis:alpine
    ports:
      - "6379:6379"
    volumes:
      - ~/.docker-volumes/app/redis/data:/var/lib/redis/data
  nginx:
    image: app_nginx
    deploy:
      restart_policy:
        condition: on-failure
    env_file: .env-prod
    depends_on:
      - client
      - api
    networks:
      - apinet
      - clientnet
    ports:
      - "80:80"
networks:
  apinet:
    driver: overlay
  clientnet:
    driver: overlay

我非常确信问题出在防火墙设置上。但是,我不确定需要打开的端口。我已经查阅了guide

0 个答案:

没有答案