인스턴스별 자격 증명을 Docker 인스턴스로 가져오기

인스턴스별 자격 증명을 Docker 인스턴스로 가져오기

저는 도커 기반 분산 작업 시스템을 실행하는 작업을 하고 있는데, 제가 겪고 있는 주요 난점은 각 도커 VM에 자격 증명을 가져오는 방법입니다.

기본적으로 각 인스턴스에는 고유한 이름과 비밀번호/SSL 인증서가 있어야 합니다. 그런 다음 시작 시 다시 홈에 연결하고 작업 처리를 시작합니다.

인스턴스를 만드는 것은 매우 간단하지만 각 인스턴스에 자격 증명을 삽입하는 좋은 접근 방식은 무엇입니까? 일반적인 합의는 "환경 변수 사용"인 것 같지만 500자 이상의 환경 변수(예: 전체 SSL 인증서)를 사용하는 것은 조잡해 보입니다.

현재 제가 포장하려는 애플리케이션은 구성을 위해 간단한 JSON 파일을 사용합니다. 런타임에 Docker 인스턴스에 파일을 추가하는 방법이나 이와 유사한 방법이 있습니까? 매개변수적으로 정의된 파일을 사용하는 마지막 빌드 단계일까요?

답변1

Docker 볼륨을 추가하고 컨테이너별로 원하는 SSL 인증서가 포함된 호스트의 폴더를 가리킬 수 있습니다. "단일 파일" 볼륨을 만들 수도 있습니다.

docker run -d \
    --name=worker0 \
    -v "/etc/ssl/worker0.crt":/etc/ssl/private/container.crt \
    -v "/etc/ssl/worker0.key":/etc/ssl/private/container.key \
    myworkerimage

docker run -d \
    --name=worker1 \
    -v "/etc/ssl/worker1.crt":/etc/ssl/private/container.crt \
    -v "/etc/ssl/worker1.key":/etc/ssl/private/container.key \
    myworkerimage

그런 다음 작업자, bash 스크립트, ansible 등을 시작하는 데 사용하는 것이 무엇이든 호스트에서 올바른 인증서를 선택할 수 있지만 시작된 각 컨테이너 내부에서는 상황이 동일합니다(인증서는 항상 동일한 경로에 있음).

:ro이러한 '파일 볼륨' 이 정적 구성이고 컨테이너가 변경할 것으로 예상되거나 변경할 수 있어야 하는 항목이 아니라는 점을 반영하기 위해 읽기 전용 볼륨을 만들 수 있습니다 .

관련 정보