J'essaie d'exécuter la commande docker suivante:
docker run -i -t ubuntu /bin/bash
Mais je reçois l'erreur:
Unable to find image 'ubuntu' (tag: latest) locally
Pulling repository ubuntu
2013/11/28 14:00:24 Get https://index.docker.io/v1/images/ubuntu/ancestry: x509: certificate signed by unknown authority
Je sais que notre entreprise remplace le certificat SSL à la volée pour les demandes https.
J'ai essayé de faire confiance au certificat CA de notre entreprise en le mettant dans:
/etc/pki/tls/certs/ca-bundle.crt
et
/etc/pki/tls/cert.pem
Mais cela ne fonctionne toujours pas.
Des idées?
Pour configurer docker pour qu'il fonctionne avec un système proxy, vous devez d'abord ajouter la variable d'environnement HTTPS_PROXY/HTTP_PROXY au fichier sysconfig du docker. Cependant, selon que vous utilisez init.d ou l'outil de services, vous devez ajouter l'instruction "export". Comme solution de contournement, vous pouvez simplement ajouter les deux variantes dans le fichier sysconfig de docker:
/etc/sysconfig/docker
HTTPS_PROXY="https://<user>:<password>@<proxy-Host>:<proxy-port>"
HTTP_PROXY="https://<user>:<password>@<proxy-Host>:<proxy-port>"
export HTTP_PROXY="https://<user>:<password>@<proxy-Host>:<proxy-port>"
export HTTPS_PROXY="https://<user>:<password>@<proxy-Host>:<proxy-port>"
Pour que Docker travaille avec des proxy d'interception SSL, vous devez ajouter le certificat racine proxy au magasin de clés de confiance des systèmes.
Pour CentOS, copiez le fichier dans/etc/pki/ca-trust/source/anchors/et mettez à jour le ca trust store. Redémarrez ensuite le service Docker. Si votre proxy utilise l'authentification NTLM - il est nécessaire d'utiliser des proxy intermédiaires comme cntlm. Ce billet de blog l'explique en détail
La réponse de @ jpetazzo est globalement correcte, mais il existe une meilleure façon de faire la même chose (sans éditer manuellement un fichier CA-bundle):
sur CentOS:
Sudo cp yourcert.crt /etc/pki/ca-trust/source/anchors/
Sudo update-ca-trust extract
Sudo service docker restart
sur Debian:
Sudo cp yourcert.crt /usr/local/share/ca-certificates/
Sudo update-ca-certificates
Sudo service docker restart
Notez que le redémarrage du démon docker est nécessaire!
Selon http://golang.org/src/pkg/crypto/x509/root_unix.go , vous devez ajouter votre certificat à l'un des éléments suivants:
Trouvez celui qui existe sur votre système et ajoutez-y votre certificat.
(Et soyez prêt à recommencer lorsque vous mettez à niveau le package contenant ce fichier ...)
J'espère qu'il y a une meilleure méthode, mais c'est la seule que j'ai trouvée jusqu'à présent :-)