我必須從我的註冊表容器中連接到Docker主機(其中我的應用程序在8080處運行)。爲了實現這個功能,我使用「--add-host」標誌將Docker主機的IP地址傳遞給容器。跟着github issue和Command 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"
謝謝。