docker - 使用堆栈部署的 Docker Swarm 应用程序无法从外部访问
问题描述
我是 Docker swarm 的新手,因此不确定该怎么做。
我正在尝试使用 Swarm 中的堆栈创建一个 drupal 站点和一个数据库。
我的配置由 3 个 VM(使用 Virtual Box)组成,它们连接到桥接网络适配器并与主机(10.0.0.X)位于同一子网上。
部署应用程序后,没有错误,但是我无法从主机访问该站点。
我还验证了以下端口上所有节点之间的连接性
7946/tcp、7946/udp 和 4789/udp
我错过了什么?这是我正在使用的撰写文件:
version: '3.1'
services:
drupal:
container_name: drupal
image: drupal:8.2
ports:
- "8080:80"
networks:
- drupal_net
volumes:
- drupal-modules:/var/www/html/modules
- drupal-profiles:/var/www/html/profiles
- drupal-sites:/var/www/html/sites
- drupal-themes:/var/www/html/themes
postgres:
networks:
- drupal_net
container_name: postgres
image: postgres:9.6
secrets:
- psql-password
environment:
- POSTGRES_PASSWORD_FILE=/run/secrets/psql-password
volumes:
- drupal-data:/var/lib/postgresql/data
networks:
drupal_net:
driver: overlay
volumes:
drupal-data:
drupal-modules:
drupal-profiles:
drupal-sites:
drupal-themes:
secrets:
psql-password:
external:
name: psql-pw
笔记:
我试图将主机添加到 Swarm,并且只能通过 localhost 访问该应用程序。如果我输入其中一个节点的 IP 地址,我仍然没有收到任何响应。
从同一网络上的另一台设备上,该应用程序仍然无法访问。(我能够ping通包括主机在内的所有节点)
我试图创建到单个节点 Swarm,但仍然无法访问该应用程序
提到的所有场景我也用一个简单的 nginx 应用程序进行了测试
解决方案
推荐阅读
- c# - .Net Core Project 默认不会打开浏览器
- npm - NPM 安装挂起:loadCurrentTree
- android - 按下编辑文本时会出现两个键盘
- bezier - 将 AutoCAD 线段导入和映射到 Anylogic Paths
- c# - 我想制作包含二维码和二维码旁边的文字的标签
- perl - 查询如何解包打包的二进制数据
- javascript - Javascript 代码在 odoo.define 中不起作用,但在开发者控制台中起作用
- c++ - 如何在 c++ 项目中使用 TF Lite 库
- wpf - 为两个DataGrid绑定两个ViewModel,但只有1个DataGrid可以显示数据
- c# - MongoDB选择与数组中的值匹配的记录