Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法从域访问Traefik Docker Swarm Unifi安装程序_Docker_Docker Swarm_Traefik - Fatal编程技术网

无法从域访问Traefik Docker Swarm Unifi安装程序

无法从域访问Traefik Docker Swarm Unifi安装程序,docker,docker-swarm,traefik,Docker,Docker Swarm,Traefik,一段时间以来,我一直在尝试使用Traefik:v2.x设置Docker Swarm,并在Google上进行了广泛的搜索,但我仍然无法从我的外部域连接到我的反向代理 我的设置如下所示: 硬件(从外部到内部): 域和通配符域都指向我的系统,如果我运行的是一个暴露了端口80的容器,它将从域中工作。一旦我为Traefik设置了它,我就无法从外部访问我的容器,但是可以从网络内部使用curl命令访问我的测试容器。即使我卷曲USG 在服务器上,我安装了Docker+Docker Swarm并运行以下两个堆栈:

一段时间以来,我一直在尝试使用Traefik:v2.x设置Docker Swarm,并在Google上进行了广泛的搜索,但我仍然无法从我的外部域连接到我的反向代理

我的设置如下所示:

硬件(从外部到内部):

域和通配符域都指向我的系统,如果我运行的是一个暴露了端口80的容器,它将从域中工作。一旦我为Traefik设置了它,我就无法从外部访问我的容器,但是可以从网络内部使用curl命令访问我的测试容器。即使我卷曲USG

在服务器上,我安装了Docker+Docker Swarm并运行以下两个堆栈:

version: '3'
services:
  reverse-proxy:
    image: traefik:v2.3.4
    command:
      - "--providers.docker.endpoint=unix:///var/run/docker.sock"
      - "--providers.docker.swarmMode=true"
      - "--providers.docker.exposedbydefault=false"
      - "--providers.docker.network=traefik-public"
      - "--entrypoints.web.address=:80"
    ports:
      - 80:80
      - 8080:8080
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    networks:
      - traefik-public
    deploy:
      placement:
        constraints:
          - node.role == manager

networks:
  traefik-public:
    external: true


我有一个小小的更新,可以访问一个在我的域中暴露了端口80的常规容器,但是一旦我用Docker Swarm旋转容器,它就不再暴露在互联网上

网络创建如下,我也将其用于常规容器:

docker network create -d overlay --attachable test
和yml:

version: '3'
services:
  nginx:
    image: nginx
    ports:
      - 80:80
    networks:
      - test-swarm-network

networks:
  test:
    external: true
因此,上述操作不起作用,但从外部可以在我的域中看到以下内容:

docker run -d -p 80:80 nginx

搬到库伯内特斯。Swarm已经被弃用了。谢谢你,但我想继续使用Swarm。这是你的选择,但是学习一项过时的技术是浪费你的时间,而且当它出问题时,你不可能找到任何帮助(比如你现在的问题)。像K3D这样的Kubernetes实现是随Traefik预先部署的,使用它非常简单,当它出错时会有很多帮助。它也更安全,比swarm收到了更多的最新更新,swarm在年底失去了对商业客户的支持,并且已经失去了对开源afaik的支持。
version: '3'
services:
  nginx:
    image: nginx
    ports:
      - 80:80
    networks:
      - test-swarm-network

networks:
  test:
    external: true
docker run -d -p 80:80 nginx