【问题标题】:Accessing microservice inside Docker container?访问 Docker 容器内的微服务?
【发布时间】:2017-04-06 04:58:02
【问题描述】:

我有一个 Dropwizard 微服务在端口 9000 上的容器中运行。

在 Dockerfile 中,我像这样暴露了端口

FROM maven:3.3-jdk-8-alpine

# Install packages
RUN apk add --no-cache curl tar bash wget

EXPOSE 9000

然后我像这样运行容器

docker run --add-host="localhost:10.0.2.2" -t foo-service

但是,当我尝试通过 localhost:9000 访问它时,我没有在浏览器中得到响应。

如何从 Docker 主机访问微服务?

Docker 主机是 Ubuntu 16.04

非常感谢

【问题讨论】:

  • 通常你应该使用类似docker run -d -p 9000:9000 foo-service 的东西来运行你的容器,但是如果我这样做,我的容器就会停止运行并且错误日志会显示:[ERROR] No goals have been specified for this build. You must specify a valid lifecycle...
  • 这对我有用,谢谢!

标签: docker dockerfile docker-networking


【解决方案1】:

EXPOSE 实际上不允许您从 docker 外部访问该端口。这是一种允许其他容器访问该端口的方式

如果您希望能够从浏览器访问端口 9000,您需要将 -p 9000:9000 添加到您的运行命令中。这是一个端口映射,它将您的主机端口映射到容器上的端口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2021-05-22
    • 1970-01-01
    • 2017-04-26
    • 1970-01-01
    相关资源
    最近更新 更多