Existe-t-il un moyen élégant d'ajouter des certificats SSL aux images provenant de docker pull ?.
Je recherche un moyen simple et reproductible d'ajouter un fichier dans / etc / ssl / certs et d'exécuter update-ca-certificates. (Cela devrait couvrir les images ubuntu et debian).
J'utilise docker sur CoreOS, et la machine coreos fait confiance aux certificats SSL nécessaires, mais les conteneurs docker n'ont évidemment que la valeur par défaut.
J'ai essayé d'utiliser docker run --entrypoint=/bin/bash
pour ensuite ajouter le certificat et exécuter update-ca-certificates
, mais cela semble remplacer définitivement le point d'entrée.
Je me demande également maintenant, serait-il plus élégant de simplement monter /etc/ssl/certs
sur le conteneur à partir de la copie des machines hôtes? Cela permettrait implicitement aux conteneurs de faire confiance aux mêmes choses que l'hôte.
Je travaille avec un proxy ennuyeux qui résigne tout: (. Ce qui casse SSL et rend les conteneurs assez étranges à utiliser.
la source
Réponses:
Montez les certificats sur le conteneur Docker en utilisant
-v
:la source
J'essaie de faire quelque chose de similaire. Comme commenté ci-dessus, je pense que vous voudriez créer une nouvelle image avec un Dockerfile personnalisé (en utilisant l'image que vous avez tirée comme image de base),
ADD
votre certificat, puisRUN update-ca-certificates
. De cette façon, vous aurez un état cohérent chaque fois que vous démarrez un conteneur à partir de cette nouvelle image.Disons qu'un
docker build
contre ce Dockerfile a produit IMAGE_ID. Au suivantdocker run -d [any other options] IMAGE_ID
, le conteneur démarré par cette commande aura vos informations de certificat. Simple et reproductible.la source
Comme suggéré dans un commentaire ci - dessus , si le magasin de certificats sur l'hôte est compatible avec l'invité, vous pouvez simplement le monter directement.
Sur un hôte (et un conteneur) Debian, j'ai réussi:
la source
Vous pouvez utiliser le chemin relatif pour monter le volume sur le conteneur:
Notez la coche arrière sur le
pwd
qui vous donne le répertoire de travail actuel. Cela suppose que vous avez lecerts
dossier dans le répertoire actuel dans lequeldocker run
est exécuté. Un peu génial pour le développement local et gardez le dossier des certificats visible pour votre projet.la source