[ssl] 도커 컨테이너 SSL 인증서

docker pull에서 가져온 이미지에 SSL 인증서를 추가하는 우아한 방법이 있습니까?.

/ etc / ssl / certs에 파일을 추가하고 update-ca-certificates를 실행하는 간단하고 재현 가능한 방법을 찾고 있습니다. (우분투와 데비안 이미지를 포함해야합니다).

CoreOS에서 docker를 사용하고 있으며 coreos 머신은 필요한 SSL 인증서를 신뢰하지만 docker 컨테이너에는 분명히 기본값 만 있습니다.

docker run --entrypoint=/bin/bash그런 다음 cert를 추가하고 실행 하려고 시도 update-ca-certificates했지만 이것은 진입 점을 영구적으로 재정의하는 것 같습니다.

나는 또한 지금 궁금 /etc/ssl/certs합니다. 호스트 머신 사본에서 컨테이너에 마운트하는 것이 더 우아 할까요? 이렇게하면 컨테이너가 호스트와 동일한 것을 신뢰하도록 암시 적으로 허용됩니다.

나는 모든 것을 사임하는 성가신 프록시와 함께 일하고 있습니다 :(. SSL을 깨고 컨테이너가 작동하기에 이상하게 만듭니다.



답변

다음을 사용하여 Docker 컨테이너에 인증서를 마운트합니다 -v.

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


답변

나는 이것과 비슷한 것을 시도하고 있습니다. 위에서 언급했듯이 사용자 지정 Dockerfile (기본 이미지로 가져온 이미지 사용), ADD인증서, RUN update-ca-certificates. 이렇게하면이 새 이미지에서 컨테이너를 시작할 때마다 일관된 상태를 갖게됩니다.

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

docker buildDockerfile이 IMAGE_ID를 생성 했다고 가정 해 보겠습니다 . 다음 docker run -d [any other options] IMAGE_ID에서는 해당 명령으로 시작된 컨테이너에 인증서 정보가 포함됩니다. 간단하고 재현 가능합니다.


답변

설명 에서 제안했듯이 호스트의 인증서 저장소가 게스트와 호환되는 경우 직접 마운트 할 수 있습니다.

Debian 호스트 (및 컨테이너)에서 성공적으로 수행했습니다.

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


답변

상대 경로를 사용하여 볼륨을 컨테이너에 마운트 할 수 있습니다.

docker run -v `pwd`/certs:/container/path/to/certs ...

pwd현재 작업 디렉토리를 제공하는 백틱에 유의하십시오 . certs현재 디렉터리 docker run에 실행되는 폴더 가 있다고 가정합니다 . 로컬 개발에 적합하며 프로젝트에서 certs 폴더를 계속 볼 수 있습니다.


답변