node.js - 运行 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
解决方案
对于任何遇到这种问题的人。问题是 docker 的版本。我删除了 20.10.15 并重新安装了 docker 19.03.10。要安装自定义 docker 而不是最新的后续步骤。https://docs.docker.com/engine/install/ubuntu/
locahost 不起作用,但运行hostname -I
以获取您机器的 ip 并将其粘贴进去。然后就可以了。
推荐阅读
- javascript - 可以使用 store 作为组件数据的存储吗?
- android - 如何从另一个 Activity 中的 ListView 传递和检索领域结果?
- reactjs - React 嵌套表格组件
- java - 如何将图像从androids apk包文件夹复制到android设备的另一个文件夹
- python - 追加到上一行
- java - 在两个bean之间注入spring bean-实现相同的接口
- javascript - How to add cursor pointer to Chart.js datalabels plugin
- angular - 如何使用 Router 或 ActivatedRoute 从 url 获取参数
- dji-sdk - 错误:无法 catkin 构建 Onboard-SDK-ROS
- php - symfony4,依赖注入,无默认参数