访问Docker容器内的微服务?

我有一个在9000端口的容器中运行的Dropwizard Microservice。

在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

非常感谢

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

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