运行 docker stack deploy 无法连接到应用程序。 Docker-compose 工作正常

问题描述 投票:0回答:2

我正在尝试让一个非常简单的 docker-swarm 运行起来。如果我使用

docker-compose up -d
启动容器,我可以转到 locahost 并看到“Hello 消息”。 运行
docker stack deploy -c docker-compose.yml swar
可以正常启动集群。 码头工人 PS

docker服务ls

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

服务器.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");
});

docker-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.js docker docker-swarm
2个回答
1
投票

对于任何遇到此类问题的人。问题是docker的版本。我删除了 20.10.15 并重新安装了 docker 19.03.10。要安装自定义 docker 而不是最新的,请按照以下步骤操作。 https://docs.docker.com/engine/install/ubuntu/ locahost 不起作用,但运行

hostname -I
获取您机器的 IP 并将其粘贴进去。然后就可以了。


0
投票

我的撰写文件中有 Ngnix 服务。

  nginx:
    image: nginx:latest
    build:
      context: .
      dockerfile: ./nginx/Dockerfile
    depends_on:
      - gateway
    ports:
      - 80:80
      - 443:443

当我使用

docker compose up --build
运行时,它就像使用构建一样工作。 docker stack up 使用该图像,但不起作用,因为它使用的是最新的
nginx:latest
而不是我使用 docker-compose build 构建的图像。 我花了很多时间才弄清楚这一点。

我重新命名了图像和服务也是为了避免混淆。

© www.soinside.com 2019 - 2024. All rights reserved.