【问题标题】:Trouble connecting to my docker app via VM IP无法通过 VM IP 连接到我的 docker 应用程序
【发布时间】:2019-06-19 21:59:31
【问题描述】:

在底部解决

但为什么我必须附加 :4000?


我在这里关注 docker 入门指南,https://docs.docker.com/get-started/part4/

我相当肯定我做的一切都正确,但我想知道为什么我在部署后无法连接以查看应用程序。

我已将我的环境设置为我的虚拟机 myvm1,以供参考以下命令。

docker 容器 ls -a

CONTAINER ID        IMAGE                          COMMAND             CREATED             STATUS              PORTS               NAMES
099e16249604        beresj/getting-started:part2   "python app.py"     12 seconds ago      Up 12 seconds       80/tcp              getstartedlab_web.5.y0e2k1r1ev47u24e5iufkyn3i
6f9a24b343a7        beresj/getting-started:part2   "python app.py"     12 seconds ago      Up 12 seconds       80/tcp              getstartedlab_web.3.1pls3osj3uhsb5dyqtt4ts8j6

docker 镜像 ls -a

REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
beresj/getting-started   <none>              e290b6208c21        22 hours ago        131MB

码头工人栈 ls

NAME                SERVICES            ORCHESTRATOR
getstartedlab       1                   Swarm

docker-machine ls

NAME    ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER     ERRORS
myvm1   *        virtualbox   Running   tcp://192.168.99.100:2376           v18.09.6   
myvm2   -        virtualbox   Running   tcp://192.168.99.101:2376           v18.09.6  

docker stack ps getstartedlab

ID                  NAME                  IMAGE                          NODE                DESIRED STATE       CURRENT STATE           ERROR               PORTS
vkxx79fh3h85        getstartedlab_web.1   beresj/getting-started:part2   myvm2               Running             Running 3 minutes ago                       
qexbaa3wz0pd        getstartedlab_web.2   beresj/getting-started:part2   myvm2               Running             Running 3 minutes ago                       
1pls3osj3uhs        getstartedlab_web.3   beresj/getting-started:part2   myvm1               Running             Running 3 minutes ago                       
ucuwen1jrncf        getstartedlab_web.4   beresj/getting-started:part2   myvm2               Running             Running 3 minutes ago                       
y0e2k1r1ev47        getstartedlab_web.5   beresj/getting-started:part2   myvm1               Running             Running 3 minutes ago     

卷曲 192.168.99.100

curl: (7) Failed to connect to 192.168.99.100 port 80: Connection refused

码头工人信息

Containers: 2
 Running: 2
 Paused: 0
 Stopped: 0
Images: 1
Server Version: 18.09.6
...
Swarm: active
 NodeID: 0p9qrax9h3by0fupat8ufkfbq
 Is Manager: true
 ClusterID: 7vnqdk85n8jx6fqck9k7dv2ka
 Managers: 1
 Nodes: 2
 Default Address Pool: 10.0.0.0/8  
...
Node Address: 192.168.99.100
 Manager Addresses:
  192.168.99.100:2377
...
Kernel Version: 4.14.116-boot2docker
Operating System: Boot2Docker 18.09.6 (TCL 8.2.1)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 989.4MiB
Name: myvm1

当我在本地机器上运行它而不是在集群中的虚拟机上运行它时,我希望看到我能够看到的内容(我认为我的术语是正确的?)

不确定如何检查打开的端口。
同样:如果我只是删除堆栈,取消设置 docker-machine 环境,然后运行:
docker stack deploy -c docker-compose.yml getstartedlab
不在vm上。

提前谢谢你。 (另外,我是新手因此有入门指南,所以我很感激任何帮助)

编辑

如果我将 :4000 附加到我的 url 中的 VM IP,例如:192.168.99.100:4000 或 192.168.99.101:4000,它会起作用。它显示了 myvm1 的 'docker container ls' 中列出的两个容器 ID,其他三个来自 myvm2。 谁能告诉我为什么我必须附加 4000?是因为我的 docker-compose.yml 中有端口:“4000:80”吗?

【问题讨论】:

    标签: docker virtual-machine docker-ingress


    【解决方案1】:

    不确定这是否会有所帮助,但如果您使用docker inspect &lt;instance_id_here&gt;,您可以看到暴露了哪些端口。

    暴露的端口不是开放的端口。您需要将主机端口绑定到 docker-compose.yml 中的容器端口才能打开。

    【讨论】:

    • 我实际上通过将 :4000 附加到 IP 来获得一些工作(在原始问题中编辑以显示这一点)但不确定其他三个容器 ID 来自哪里,因为只有两个显示up in docker container ls.. 我假设它们来自另一个虚拟机?... edit 刚刚验证,它们实际上来自另一个虚拟机。似乎一切都按预期工作,我只是忘记附加 IP w/:4000。 不过,谢谢,因为该命令确实有助于显示很多有用的信息!
    • 跟进,我是否必须输入:4000,因为端口:-“4000:80”在我的 docker-compose.yml 中?
    • 是的,我认为你是对的。据我所知,“4000:80”正在将 docker 中的端口 4000 绑定到主机上的端口 80。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    • 2020-02-29
    • 2021-04-18
    • 1970-01-01
    • 2018-07-09
    • 2017-06-01
    相关资源
    最近更新 更多