Existe alguma maneira elegante de adicionar certificados SSL a imagens que vieram do docker pull ?.
Estou procurando uma maneira simples e reproduzível de adicionar um arquivo em / etc / ssl / certs e executar update-ca-certificates. (Isso deve abranger imagens do Ubuntu e debian)
Estou usando o docker no CoreOS e a máquina coreos confia nos certificados SSL necessários, mas os contêineres do docker obviamente só têm o padrão.
Tentei usar docker run --entrypoint=/bin/bash
para adicionar o cert e executar update-ca-certificates
, mas isso parece substituir permanentemente o ponto de entrada.
Também estou me perguntando agora, seria mais elegante apenas montar /etc/ssl/certs
no contêiner a partir da cópia das máquinas host? Isso permitiria implicitamente que os contêineres confiassem nas mesmas coisas que o host.
Estou trabalhando com um proxy chato que cancela tudo :(. Que quebra SSL e torna os contêineres meio estranhos para trabalhar.
fonte
Respostas:
Monte os certificados no contêiner Docker usando
-v
:fonte
Estou tentando fazer algo semelhante a isso. Conforme comentado acima, acho que você gostaria de construir uma nova imagem com um Dockerfile personalizado (usando a imagem que você puxou como imagem base),
ADD
seu certificado, entãoRUN update-ca-certificates
. Dessa forma, você terá um estado consistente cada vez que iniciar um contêiner a partir dessa nova imagem.Digamos que um
docker build
contra esse Dockerfile produziu IMAGE_ID. No próximodocker run -d [any other options] IMAGE_ID
, o container iniciado por aquele comando terá as informações do seu certificado. Simples e reproduzível.fonte
Como foi sugerido em um comentário acima , se o armazenamento de certificados no host for compatível com o convidado, você pode simplesmente montá-lo diretamente.
Em um host Debian (e contêiner), fiz com sucesso:
fonte
Você pode usar o caminho relativo para montar o volume no contêiner:
Observe a marca de volta em
pwd
que fornece o diretório de trabalho atual. Ele assume que você tem acerts
pasta no diretório atual em que odocker run
é executado. Ótimo para desenvolvimento local e manter a pasta certs visível para o seu projeto.fonte