首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Docker IPAddress为空:无法访问容器

Docker IPAddress为空:无法访问容器
EN

Stack Overflow用户
提问于 2017-11-09 14:16:38
回答 1查看 1.6K关注 0票数 2

我按如下方式构建了容器:

代码语言:javascript
运行
复制
docker build -t microservicedemo/corenlp .

接下来,我运行它:

代码语言:javascript
运行
复制
docker run -P -d --name corenlp microservicedemo/corenlp

和坞站ps -a显示:

代码语言:javascript
运行
复制
CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS              PORTS                     NAMES
9e7d92c27e39        microservicedemo/corenlp   "java -Djava.secur..."   4 seconds ago       Up 2 seconds        0.0.0.0:32768->8080/tcp   corenlp

但我不能通过http://localhost:8080http://192.168.0.26:8080访问它。当我运行docker inspect 9e7d92c27e39 | grep IPA时,IP地址为空或"“。最后,将DOCKER_HOST设置为unix:///var/run/docker.sock

我不知道如何在浏览器中或通过curl访问容器。

EN

回答 1

Stack Overflow用户

发布于 2017-11-09 17:42:04

查看docker ps的输出

代码语言:javascript
运行
复制
PORTS
0.0.0.0:32768->8080/tcp

这表明容器的端口8080被发布到主机的端口32768。这就是你应该连接的地方。您需要将请求发送到http://<your docker host ip>:32768,而不是http://<your docker host ip>:8080

注意docker run-P选项会让Docker将所有发布的容器端口映射到主机上的随机端口,所以下次运行容器8080时可能不会再映射到32768!如果您想避免这种情况,可以显式映射端口:

代码语言:javascript
运行
复制
docker run -p 8888:8080 -d --name corenlp microservicedemo/corenlp

此命令会将容器的端口8080映射到Docker主机(-p <host port>:<container port>)上的8888端口。

编辑

Docker主机IP是运行Docker daemon的机器的IP (托管镜像、容器、卷等的服务)。对于Linux,它是安装Docker的机器(默认情况下)。在Windows和OSX上,它是docker-machine的IP地址。DOCKER_HOST变量根本没有连接到Docker发布端口的IP。它只是定义了Docker CLI (docker命令)应该如何连接到上面提到的Docker daemon (dockerd)。

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

https://stackoverflow.com/questions/47195085

复制
相关文章

相似问题

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