certificati ssl del contenitore docker

C’è un modo elegante per aggiungere certificati SSL alle immagini che provengono da docker pull ?.

Sto cercando un modo semplice e riproducibile di aggiungere un file in / etc / ssl / certs ed eseguire update-ca-certificates. (Questo dovrebbe riguardare le immagini di Ubuntu e Debian).

Sto usando la finestra mobile su CoreOS e la macchina coreos si fida dei certificati ssl necessari, ma i container docker ovviamente hanno solo il valore predefinito.

Ho provato a usare docker run --entrypoint=/bin/bash per aggiungere il certificato ed eseguire update-ca-certificates , ma questo sembra sovrascrivere in modo permanente il punto di ingresso.

Mi chiedo anche adesso, sarebbe più elegante montare /etc/ssl/certs sul container dalla copia delle macchine host? Ciò implicherebbe implicitamente che i contenitori si fidino delle stesse cose dell’host.

Sono al lavoro con un proxy fastidioso che si dimette tutto :(. Che rompe SSL e rende i contenitori di tipo bizzarro con cui lavorare.

Montare i certificati sul contenitore Docker utilizzando -v :

 docker run -v /host/path/to/certs:/container/path/to/certs -d IMAGE_ID "update-ca-certificates" 

Come suggerito in un commento sopra , se l’archivio certificati sull’host è compatibile con l’ospite, puoi semplicemente montarlo direttamente.

Su un host Debian (e container), ho eseguito con successo:

 docker run -v /etc/ssl/certs:/etc/ssl/certs:ro ... 

Sto cercando di fare qualcosa di simile a questo. Come detto sopra, penso che vorresti creare una nuova immagine con un Dockerfile personalizzato (usando l’immagine che hai estratto come immagine base), ADD tuo certificato, quindi RUN update-ca-certificates . In questo modo avrai uno stato coerente ogni volta che avvii un contenitore da questa nuova immagine.

 # Dockerfile FROM some-base-image:0.1 ADD you_certificate.crt:/container/cert/path RUN update-ca-certificates 

Diciamo che una docker build rispetto a quel Dockerfile ha prodotto IMAGE_ID. Sulla prossima docker run -d [any other options] IMAGE_ID , il contenitore avviato da quel comando avrà le informazioni sul certificato. Semplice e riproducibile.