Quando faccio il docker pull
da dentro un contenitore che utilizza /var/run/docker.sock
per eseguire docker (docker all'interno docker), ho avuto questo errore:
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
Così ho seguito l'istruzione e ho aggiunto il ca.crt
all'interno di quella directory e ca.crt
anche aggiunto l'opzione non ca.crt
a /etc/default/docker
, ma l'errore non è andato via.
Mi chiedo where /var/run/docker.sock
command cercare il cert quando tiro da dentro il contenitore. Soprattutto quando si tirano le opere dall'esterno (host) con la stessa configuration (ca.crt nella cartella destra e viene aggiunta l'opzione non sicura).
/var/run/docker.sock
non è la cosa che sta cercando un cert. Questo è semplicemente il socket che utilizzi per comunicare con dockerd. Quando fai un tiro, chiedi al demone docker di andare a parlare con un registro.
Dove hai ottenuto il file ca.crt
? È davvero il certificato di firma per il certificato del server di registry.com:5000
? Hai inserito in /et c/default/docker/registry.com:5000/ca.crt
nell'host in cui è in esecuzione dockerd, o all'interno del contenitore?
Quello file ca.crt
appartiene where il demone è in esecuzione. Doppio controllo di avere quel file corretto nel luogo corretto dell'host e che dovrebbe risolvere il problema.
Ha avuto a che fare ora, la soluzione è riavviare il demone docker all'interno del contenitore. Ho effettivamente provato prima ma il servizio docker continuato a scendere dopo il riavvio, che mi ha fatto pensare che era il servizio docker dall'host.
Il motivo per cui non riesco a riavviare il servizio docker è che esisteva /var/run/docker.pid
che impedisce al docker di ricominciare. Così ho cancellato quel pid e il docker riavviato con successo.