스웜 클러스터없이 도커 비밀을 사용하는 방법은 무엇입니까? 한 다음 저장소에 배치하지 않도록 실행

현재 우리는 단일 도커 컨테이너에서 실행중인 응용 프로그램을 사용하고 있으며 응용 프로그램은 모든 종류의 민감한 데이터를 환경 변수로 전달해야합니다.

이미지를 실행 한 다음 저장소에 배치하지 않도록 실행 명령을 사용하지만 매우 안전하지 않은 실행 명령으로 끝납니다.

이제 도커 비밀이 존재한다는 것을 알고 있지만 클러스터를 배포하지 않고 어떻게 사용할 수 있습니까? 또는이 데이터를 보호하는 다른 방법이 있습니까?

친애하는,



답변

당신은 할 수 없습니다 … 그것은 Swarm없이 비밀을 지원하지 않습니다. 하나의 노드 만 사용하여“Swarm ”하지 않는 한.

다른 해결책은 다음과 같은 타사 볼트 소프트웨어를 사용하는 것입니다.

https://www.vaultproject.io/

그러나 Vault의 컨테이너에서 비밀을 사용하려면 문서를 읽어야합니다.

이것이 올바른 길로 인도하기를 바랍니다.


답변

, 작성 파일 을 사용하면 비밀을 사용할 수 있습니다 . (당신은 떼를 실행할 필요가 없습니다).

당신과 함께 작성 파일을 사용하여 고정 표시기-작성을 :이 문서는 고정 표시기-compose.yml 파일에서 “비밀”에 대한 .

비밀을 사용하고 싶기 때문에 docker-compose로 전환했습니다. 나는 더 행복해 보인다. 각 서비스는 컨테이너에 매핑됩니다. 그리고 대신 무리를 달리기로 전환하고 싶다면 기본적으로 이미 있습니다.

참고 : 비밀은 컨테이너 환경에로드되지 않으며 / run / secrets /에 마운트됩니다.

예를 들면 다음과 같습니다.

1) 프로젝트 구조 :

|
|---    docker-compose.yml
|---    super_duper_secret.txt

2) docker-compose.yml 내용 :

version: "3.6"

services:

  my_service:
    image: centos:7
    entrypoint: "cat /run/secrets/my_secret"
    secrets:
      - my_secret

secrets:
  my_secret:
    file: ./super_duper_secret.txt

3) super_duper_secret.txt 내용 :

Whatever you want to write for a secret really.

4) 컨테이너가 비밀에 액세스 할 수 있는지 확인하려면 프로젝트의 루트 에서이 명령을 실행하십시오 (Docker가 실행 중이고 docker-compose가 설치되어 있어야 함).

docker-compose up --build my_service

컨테이너가 비밀을 출력 한 것을 볼 수 있습니다.