當我做docker pull
從使用/var/run/docker.sock
運行泊塢窗(內碼頭工人碼頭工人)的容器裏面,我得到這個錯誤:docker.sock用於docker pull的哪個ca.crt?
FATA[0000] Error response from daemon: v1 ping attempt failed with error: Get https://registry.com:5000/v1/_ping: x509: certificate has expired or is not yet valid. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry registry.com:5000` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/registry.com:5000/ca.crt
所以我也跟着指示,並補充說目錄內ca.crt
,也將不安全選項添加到/etc/default/docker
,但錯誤沒有消失。
我想知道當我從容器內拉出時,/var/run/docker.sock
命令在哪裏查找證書。特別是當使用相同的配置(ca.crt在正確的文件夾中,並且不安全的選項也被添加)從外部(主機)拉出工作時。
關閉我的頭頂,拉應該從主機上運行的dockerd守護進程運行,而不是從容器內的客戶端運行。 – BMitch
@BMitch這樣它會從主機上查找cert文件夾(/etc/docker/certs.d/registry.com:5000/ca.crt)嗎? – Casper
你使用舊的v1註冊表嗎? ca.crt必須包含整個鏈,從subCA到CA(如果是自簽名或未知的)。如果它是一個已知的CA(安裝了ca-certificates,對於基於Debian的發行版),您可以省略它,但它不會影響到那裏。 –