在数字海洋上configurationDocker Swarm的防火墙设置

我怎样才能configuration我的数字海洋箱有正确的防火墙设置?

我遵循了Digital Ocean和Docker容器一起工作的官方指南 。

我有3个docker节点,我可以看到,当我docker-machine ls 。 我已经创build了一个主docker节点,并作为工作者join了其他docker节点。 但是,如果我尝试访问该节点的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 

我非常确定问题在于防火墙设置。 不过,我不确定那些需要开放的港口。 我已经咨询过这个指南 。