Docker-在swarm manager上运行应用程序(无法连接)

Docker-在swarm manager上运行应用程序(无法连接),docker,cluster-computing,docker-swarm,docker-machine,Docker,Cluster Computing,Docker Swarm,Docker Machine,TLDR版本: 如何验证/设置swarm节点上的端口7946和4789,以便查看从docker机器运行的应用程序? 完整问题: 我正在学习docker教程,并且正在进行第4步 当我开始访问您的群集部分时。它说我应该能够从使用docker machine ls显示的一个节点获取ip地址。我运行该命令,查看IP,抓取它并将其放入浏览器(或者使用curl),然后收到错误 This site can’t be reached 192.168.99.100 refused to connect. Tr

TLDR版本:

如何验证/设置swarm节点上的端口7946和4789,以便查看从docker机器运行的应用程序?

完整问题:

我正在学习docker教程,并且正在进行第4步

当我开始访问您的群集部分时。它说我应该能够从使用docker machine ls显示的一个节点获取ip地址。我运行该命令,查看IP,抓取它并将其放入浏览器(或者使用curl),然后收到错误

This site can’t be reached

192.168.99.100 refused to connect.
Try:
Checking the connection
Checking the proxy and the firewall
ERR_CONNECTION_REFUSED
在这一步下面有一个注释,说明在启用swarm模式之前,假设它们的意思是在您运行时:

docker-machine ssh myvm1 "docker swarm init --advertise-addr <myvm1 ip>"
在过去的几天里,我一直在浏览文档,重做步骤,并尽我所能完成这项工作,但都没有成功

是否有人可以解释/提供文档,向我展示如何查看/设置这些端口,或者解释我是否遗漏了一些其他重要信息

更新

我无法让swarm工作,所以我决定只运行docker-compose.yml文件中的所有内容。下面是我使用的代码:

docker-compose.yml文件:

version: '3'
services:
  www:
build: .
ports:
  - "80:80"
links:
  - db
depends_on:
  - db
volumes:
  - .:/opt/www

db:
image: mysql:5.7
volumes:
  - /var/lib/mysql
restart: always
environment:
  MYSQL_ROOT_PASSWORD: supersecure
  MYSQL_DATABASE: test_db
  MYSQL_USER: jake
  MYSQL_PASSWORD: supersecure
以及位于同一目录中的Dockerfile,其中包含以下内容:

# A simple Flask app container.
FROM python:2.7
LABEL maintainer="your name here"

# Place app in container.
ADD . /opt/www
WORKDIR /opt/www

# Install dependencies.
RUN pip install -r requirements.txt

EXPOSE 80
ENV FLASK_APP index.py
ENV FLASK_DEBUG 1
CMD python index.py

您需要创建在这两个文件(example requirements.txt和index.py)中引用的任何其他文件,但这些文件都与dockerfile和docker-compose.yml文件位于同一目录中。如果有人有疑问,请发表评论

您是在使用Linux、Windows还是Mac?我正在使用Mac。我在过去3天一直在处理同一问题。我正在使用windows和docker工具箱。我创建了一个swarm群集,但无法命中。@VikasVats我的临时解决方案是创建一个包含我的信息的docker compose文件,然后使用docker compose build/docker compose up运行它。我将发布我用来让python与mysql一起运行的代码作为更新。。如果你不需要使用swarm,我想就避免吧。。。这不是一个真正令人满意的答案,但如果这是一个阻碍问题,可能值得避免它
# A simple Flask app container.
FROM python:2.7
LABEL maintainer="your name here"

# Place app in container.
ADD . /opt/www
WORKDIR /opt/www

# Install dependencies.
RUN pip install -r requirements.txt

EXPOSE 80
ENV FLASK_APP index.py
ENV FLASK_DEBUG 1
CMD python index.py