无法连接到一个应用程序正在侦听
问题描述:
我想运行詹金斯泊坞窗集装箱港,但证明,我在Ubuntu 15.10中运行的netcat的服务器容器的问题:无法连接到一个应用程序正在侦听
Docker version 1.6.2, build 7c8fca2
这里是我的Dockerfile:
FROM ubuntu
CMD while true; do echo 'HTTP/1.1 200 OK\r\n\r\nHello world' | nc -l 8080; done
当主机上运行,这只有一行将返回HTTP 200个响应。
现在,在容器上。然后docker build -t mydoc .
。冉docker run -it --expose 8080 -p 8080:8080 mydoc
。在另一个终端,试图卷曲它:curl -D - -o - http://127.0.0.1:8080
。
它只是块没有响应。
一些可能相关的信息:
>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1acc13bb3384 mydoc:latest "/bin/sh -c 'while t 48 seconds ago Up 47 seconds 0.0.0.0:8080->8080/tcp goofy_darwin
和
>netstat -ant | grep 8080
tcp 0 1 10.0.2.15:34512 172.17.0.25:8080 SYN_SENT
tcp 0 0 127.0.0.1:33276 127.0.0.1:8080 ESTABLISHED
tcp6 0 0 :::8080 :::* LISTEN
tcp6 78 0 127.0.0.1:8080 127.0.0.1:33276 ESTABLISHED
注意SYN_SENT。这是尽可能的。
答
Linux的服务状态显示为:
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2016-03-07 13:39:44 CST; 2min 24s ago
Docs: http://docs.docker.com
Main PID: 672 (docker)
Memory: 11.2M
CPU: 62ms
CGroup: /system.slice/docker.service
└─672 /usr/bin/docker -d -H fd://
这个固定的问题:
service docker restart
我不知道为什么。现在,服务响应:
>curl -D - http://127.0.0.1:8080
HTTP/1.1 200 OK
Hello world
此外,选择--expose 8080
没有必要为此工作。
编辑:
得到1.6.2工作之后,我升级到1.10.2,并没有看到这个问题呢。我怀疑主机启动时存在某种竞争条件,但无法肯定地说。也许码头服务脚本需要一个Required-Start: $network
什么的。