docker.sock用于docker pull的哪个ca.crt?

当我使用/var/run/docker.sock运行docker(docker内部的docker)的容器内部执行docker时,我得到了这个错误:

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命令在哪里查找证书。 特别是当从外部(主机)使用相同的configuration(ca.crt在正确的文件夹和不安全的选项也被添加)从外部拉工作。

/var/run/docker.sock不是正在寻找证书的东西。 这只是您用来与dockerd进行通信的套接字。 当你做一个拉,你要求docker守护进程去registry。

你在哪里得到ca.crt文件? 这真的是您的registry.com:5000服务器证书的签名证书吗? 你把它放在/et c/default/docker/registry.com:5000/ca.crt在dockerd正在运行的主机上,还是在容器内?

ca.crt文件属于守护程序正在运行的位置。 仔细检查你在主机上的正确位置是否有正确的文件,并且应该解决这个问题。

得到它现在的工作,解决scheme是重新启动容器内的docker守护进程。 实际上,我之前尝试过,但重启后Docker服务不断下降,这让我认为这是来自主机的docker服务。

我无法重新启动docker服务的原因是/var/run/docker.pid ,防止docker重新启动。 所以我删除了该pid和docker重新启动成功。