首页 > 解决方案 > 运行 docker stack deploy 无法连接到应用程序。Docker-compose 工作正常

问题描述

我正在尝试让一个非常简单的 docker-swarm 运行。如果我使用启动容器,docker-compose up -d我可以转到 locahost 并查看“Hello 消息”。运行docker stack deploy -c docker-compose.yml swar开始群很好。码头工人ps

码头工人

码头工人服务

码头工人服务

但是导航到 localhost、0.0.0.0、127.0.0.1 或机器 IP 不起作用,它只是超时并显示“无法访问此站点。反应时间太长了。我也尝试过另一个来自 github 的小教程,它也有同样的问题。有什么想法有什么问题吗?

server.js:

const express = require("express");
const os = require("os");

const app = express();

app.get("/", (req, res) => {
  res.send("Hello from Swarm " + os.hostname());
});

app.listen(3000, () => {
  console.log("Server is running on port 3000");
});

码头工人-compose.yml:

version: "3"

services:
  web:
    build: .
    image: takacsmark/swarm-example:1.0
    ports:
      - 80:3000
    networks:
      - mynet

networks:
  mynet:

Dockerfile:

FROM node:11.1.0-alpine

WORKDIR /home/node

COPY . .

RUN npm install

CMD npm start

编辑:运行 wget < my computer ip > 只是挂起。

--2021-05-28 16:59:52--  http://<ip>/
Connecting to <ip>:80... 

curl < ip > 只是挂起没有输出。

我已经初始化了包含广告 ip 的群

docker swarm init --advertise-addr <my address> 

仍然没有运气。

我的 docker 版本是 20.10.5,docker-compose 版本:1.25.0

标签: node.jsdockerdocker-swarm

解决方案


对于任何遇到这种问题的人。问题是 docker 的版本。我删除了 20.10.15 并重新安装了 docker 19.03.10。要安装自定义 docker 而不是最新的后续步骤。https://docs.docker.com/engine/install/ubuntu/ locahost 不起作用,但运行hostname -I以获取您机器的 ip 并将其粘贴进去。然后就可以了。


推荐阅读