首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问Ubuntu虚拟机中的Docker容器端口

访问Ubuntu虚拟机中的Docker容器端口
EN

Stack Overflow用户
提问于 2019-01-04 08:37:54
回答 1查看 521关注 0票数 0

假设一台Ubuntu机器(IP:192.168.10.35)在内部运行了一个VMWare镜像(IP:172.0.18.2),并且给定了这个docker-compose.yml,我如何从我的本地机器访问docker镜像?

代码语言:javascript
复制
version: '3'

services:
    sc2:
      build: .
      ports:
        - 127.0.0.1:4620:80
      restart: always
      networks:
        - default
      volumes:
        - ./sc2ai:/sc2ai
        - ./apache/000-default.conf:/etc/apache2/sites-available/000-default.conf
networks:
    default:

我试图访问192.168.10.35:4620,但连接失败。我遗漏了什么?docker中是否有一个选项-compose missing,或者我是否需要将端口从VM内部转发到docker映像?

PS:如果我在本地机器上用docker-for-windows启动镜像,我可以通过http://localhost:4620访问它。

EN

回答 1

Stack Overflow用户

发布于 2019-01-04 08:49:58

您不能这样做,因为您已经显式地声明容器(不是映像)只能从VM本身访问。该声明

代码语言:javascript
复制
ports:
  - 127.0.0.1:4620:80

将主机上端口4620上的入站连接转发到容器中的端口80,但仅在绑定到127.0.0.1的接口上转发,该接口是专用环回接口(通常命名为lo)。当您尝试从主机联系它时,它到达VM的外部IP 192.168.10.35,但那里没有任何侦听。

如果您删除显式端口绑定,Docker将侦听所有接口,这通常是您想要的,然后您应该能够通过VM的外部IP地址到达容器。

代码语言:javascript
复制
ports:
  - '4620:80'

(术语:镜像是一组静态文件系统内容;您可以从镜像启动容器,并与正在运行的容器建立网络连接。您不能直接看到映像中的内容,映像没有任何正在运行的进程,并且您不能单独连接到映像。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54031735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档