Czy istnieje elegancki sposób dodawania certyfikatów ssl do obrazów pochodzących z Docker Pull?
Szukam prostego i powtarzalnego sposobu dodania pliku do / etc / ssl / certs i uruchomienia update-ca-Certificates. (Powinno to obejmować obrazy ubuntu i debian).
Używam Dockera na CoreOS, a maszyna Coreos ufa potrzebnym certyfikatom ssl, ale kontenery docker oczywiście mają tylko domyślne.
Próbowałem użyć, docker run --entrypoint=/bin/bash
aby następnie dodać certyfikat i uruchomić update-ca-certificates
, ale wydaje się, że to na stałe zastępuje punkt wejścia.
Zastanawiam się też teraz, czy byłoby bardziej elegancko zamontować /etc/ssl/certs
na kontenerze z kopii maszyny hosta? W ten sposób niejawnie pozwoliłoby to kontenerom ufać tym samym rzeczom, co host.
Pracuję z irytującym proxy, które rezygnuje ze wszystkiego :(. Co powoduje zerwanie SSL i sprawia, że obsługa kontenerów jest trochę dziwna.
źródło
Odpowiedzi:
Zainstaluj certyfikaty w kontenerze Docker przy użyciu
-v
:źródło
Próbuję zrobić coś podobnego do tego. Jak wspomniano powyżej, myślę, że chciałbyś zbudować nowy obraz z niestandardowym plikiem Dockerfile (używając obrazu, który pobrałeś jako obraz podstawowy)
ADD
, a następnie certyfikatRUN update-ca-certificates
. W ten sposób będziesz mieć spójny stan za każdym razem, gdy uruchomisz kontener z tego nowego obrazu.Powiedzmy, że
docker build
przeciwko temu plikowi Dockerfile utworzono IMAGE_ID. Następnego dniadocker run -d [any other options] IMAGE_ID
kontener uruchomiony przez to polecenie będzie zawierał informacje o Twoim certyfikacie. Prosty i powtarzalny.źródło
Jak zasugerowano w powyższym komentarzu , jeśli magazyn certyfikatów na hoście jest kompatybilny z gościem, możesz go po prostu zamontować bezpośrednio.
Na hoście (i kontenerze) Debiana pomyślnie wykonałem:
źródło
Możesz użyć ścieżki względnej, aby zamontować wolumin do kontenera:
Zwróć uwagę na tylny haczyk,
pwd
który daje obecny katalog roboczy. Zakłada się, że maszcerts
folder w bieżącym katalogu, w którymdocker run
jest wykonywany. Świetnie nadaje się do lokalnego rozwoju i utrzymuje folder certs widoczny dla twojego projektu.źródło