2016-11-22 138 views
0

我有一个在端口9000的容器中运行的Dropwizard Microservice。访问Docker容器内的微服务?

在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主机访问Microservice?

泊坞主机的Ubuntu 16.04

非常感谢

+0

通常你应该运行你的容器,像'docker run -d -p 9000:9000 foo-service',但是如果我这样做,我的容器就会停止运行,并且错误日志显示我:'[ERROR]没有目标为此版本指定。你必须指定一个有效的生命周期......' – lvthillo

+0

这对我有用,谢谢! – kaleeway

回答

1

EXPOSE实际上并没有让你从外面泊坞窗访问端口。这是一种允许其他容器访问该端口的方法

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