2015-10-31 77 views
0

我必須從我的註冊表容器中連接到Docker主機(其中我的應用程序在8080處運行)。爲了實現這個功能,我使用「--add-host」標誌將Docker主機的IP地址傳遞給容器。跟着github issueCommand line reference。我在下面的config.yml中啓用了我的應用程序端點:8080,以便從註冊表發送webhooks通知。Docker --add-host標誌不能用於註冊表2.0 webhooks通知

這個設置一直工作到昨天,我的應用程序在Docker版本1.8.2中收到各種推/拉事件通知。但是,它今天停止了工作。我試着從1.8.2升級到1.8.3,看看是否能解決這個問題,但目前還沒有運氣。不知道這是否與任何Docker 1.9版本更新有關。

任何輸入/建議/指針將不勝感激。

泊塢版本:

$ docker version 
Client: 
Version:  1.8.3 
API version: 1.20 
Go version: go1.4.2 
Git commit: f4bf5c7 
Built:  Mon Oct 12 06:06:01 UTC 2015 
OS/Arch:  linux/amd64 

Server: 
Version:  1.8.3 
API version: 1.20 
Go version: go1.4.2 
Git commit: f4bf5c7 
Built:  Mon Oct 12 06:06:01 UTC 2015 
OS/Arch:  linux/amd64 

啓動註冊表容器使用此命令

$docker run -d -p 5000:5000 --restart=always --add-host=dockerhost:$(ip route | awk '/docker0/ { print $NF }') --name docker_registry -v ~/docker-registry/images:/var/lib/registry -v ~/docker-registry/config/config.yml:/etc/docker/registry/config.yml registry:2.1.1 

config.yml看起來是這樣的,配置爲網絡掛接通知發送到我的應用程序終結點:8080(的AppListener):

version: 0.1 
log: 
    fields: 
    service: registry 
storage: 
    cache: 
    blobdescriptor: inmemory 
    filesystem: 
    rootdirectory: /var/lib/registry 
http: 
    addr: :5000 
    headers: 
    X-Content-Type-Options: [nosniff] 
health: 
    storagedriver: 
    enabled: true 
    interval: 10s 
    threshold: 3 
notifications: 
    endpoints: 
    - name: appListener 
     url: http://dockerhost:8080/event 
     headers: 
     Authorization: 
     timeout: 500ms 
     threshold: 5 
     backoff: 1s 

錯誤登錄docker_registry:

time="2015-10-30T23:50:15Z" level=warning msg="httpSink{http://dockerhost:8080/event} encountered too many errors, backing off" 
time="2015-10-30T23:50:16Z" level=error msg="retryingsink: error writing events: httpSink{http://dockerhost:8080/event}: error posting: Post http://dockerhost:8080/event: dial tcp 172.17.42.1:8080: connection refused, retrying" 

謝謝。

回答

0

問題似乎與在maven應用程序中的server.address被指定爲127.0.0.1的application.properties文件。

server.address=127.0.0.1 
server.port=8080 

定影,爲了下面的 「server.address = dockerhost」,等同於:在搬運工運行命令 「--add主機= dockerhost ..」 固定它。

server.address=dockerhost 
server.port=8080