Docker:在容器里听,不在外面回答
其中有一个“EXPOSE 8000”的docker集装箱。 我开始这样的过程:
sudo docker run -t -i -P imagename
容器中的进程正在侦听8000。
# netstat -a Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:8000 *:* LISTEN Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path #
在主机(即容器外),我看到端口49164绑定到容器端口8000:
[S-22]jeff@siegfried:~ $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0b0e333c6ec9 lkz:latest "/bin/bash" About an hour ago Up 6 minutes 0.0.0.0:49164->8000/tcp lkxyz__2015-01-18_202737 [S-22]jeff@siegfried:~ $
docker inspect
说,除其他事项外,
"NetworkSettings": { "Bridge": "docker0", "Gateway": "172.17.42.1", "IPAddress": "172.17.0.16", "IPPrefixLen": 16, "PortMapping": null, "Ports": { "8000/tcp": [ { "HostIp": "0.0.0.0", "HostPort": "49164" } ] } },
然而,我不能和容器说话。 外,
[S-22]jeff@siegfried:~ $ telnet localhost 49164 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Connection closed by foreign host. 1,[S-22] jeff@siegfried:~ $
而里面,
# telnet localhost 8000 Trying ::1... Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. GET / [18/Jan/2015 23:00:59] "GET /" 200 4066 <!DOCTYPE html> <html> <head> ...
我期望在外面的telnet到49164返回html,因为它在里面。
有什么build议么?
您可能想要在容器中运行的服务在0.0.0.0而不是127.0.0.1上进行侦听
- 如何提交共享卷内容的docker容器
- 无法将docker容器(rpi-nginx)链接到本地文件系统
- 运行在Docker容器(Ubuntu)的窗口中创build的应用程序
- MissingBlobException从Nexus 3 Docker-Registry中拉出或推入
- 我怎样才能减lessDocker镜像的大小
- Intellij docker集成插件和docker-machine上针对windows 10的无效卷规范
- 在docker-compose中使用network_mode ='host'break run:主机typesnetworking不能与链接一起使用
- 脚本和Dockerfile
- 如何在docker集装箱运行量angular器端到端testing?