[英]Can an insecure docker registry be given a CA signed certificate so that clients automatically trust it?
[英]Docker registry --insecure-registry not working
我正在嘗試在CentOS 7上運行Docker注冊表以供內部使用。
我已經從/usr/lib/systemd/system/docker.service
設置了Docker配置,如下所示:
[Service]
....
ExecStart=
ExecStart=/usr/bin/docker daemon -H fd:// --insecure-registry 127.0.0.1:5000
....
然后使用systemctl daemon-reload
和sudo service docker start
systemctl daemon-reload
,並確認docker正在使用ps -ef | grep docker
選項運行ps -ef | grep docker
ps -ef | grep docker
:
root 116221 1 0 13:21 ? 00:00:00 /usr/bin/docker daemon -H fd:// --insecure-registry 127.0.0.1:5000
但是,當我嘗試使用https
連接到注冊表時,它失敗了。
# Try from the server which the registry is running
curl -X GET https://127.0.0.1:5000/v1/_ping
=> curl: (35) Encountered end of file
# Try from the remote client
curl -X GET https://{registry-server-ip}:5000/v1/_ping
=> curl: (35) Server aborted the SSL handshake
當然,我已經成功使用http
訪問注冊表了:
curl -X GET http://127.0.0.1:5000/v1/_ping
=> {"host": ["Linux", ...}
以供參考,
# docker version
Client:
Version: 1.11.2
API version: 1.23
Go version: go1.5.4
Git commit: b9f10c9
Built: Wed Jun 1 21:23:11 2016
OS/Arch: linux/amd64
Server:
Version: 1.11.2
API version: 1.23
Go version: go1.5.4
Git commit: b9f10c9
Built: Wed Jun 1 21:23:11 2016
OS/Arch: linux/amd64
我應該多檢查些什么?
之所以可以在http中訪問而不是在https中訪問,是因為您將注冊表配置為不安全的注冊表。 這意味着未啟用TLS。 您可以在此處和此處找到有關安全注冊表的更多信息。
如果要使https也可以使用,則需要准備一個CA,並使用它配置注冊表。 請確保您的CA配置正確。
編輯:我想您可能會誤解什么是“不安全的注冊表”。 此功能並未真正啟用TLS支持,而是允許您創建僅支持HTTP或具有未知CA證書的HTTPS的私有注冊表。 如果希望HTTPS起作用,則有兩種選擇:使用自簽名CA或購買CA。 這里的疑難解答部分可能會對您有所幫助。
EDIT2:要嘗試使用HTTP訪問,我按照注冊表官方圖像頁面上的指南運行了一個簡單的測試: 運行注冊表docker容器:快速版本
步驟如下:
添加不安全選項DOCKER_OPTS="--insecure-registry=127.0.0.1:5000"
,然后重新啟動docker服務。
$ docker run -p 5000:5000 -v /home/mypc/data:/tmp/registry-dev registry
$ docker tag hello-world 127.0.0.1:5000/hello
$ docker push 127.0.0.1:5000/hello
輸出為:
The push refers to a repository [127.0.0.1:5000/hello] a02596fdd012: Image successfully pushed Pushing tag for rev [c54a2cc56cbb] on {http://127.0.0.1:5000/v1/repositories/hello/tags/latest}
碼頭工人推正在工作。
您也可以查看此鏈接:
它解釋了您將證書存儲在Docker客戶端計算機上的位置,以便不再將注冊表視為不安全的注冊表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.