2016-03-07 51 views
2

我想運行詹金斯泊塢窗集裝箱港,但證明,我在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。這是儘可能的。

回答

0

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什麼的。

相關問題