현재 우리는 단일 도커 컨테이너에서 실행중인 응용 프로그램을 사용하고 있으며 응용 프로그램은 모든 종류의 민감한 데이터를 환경 변수로 전달해야합니다.
이미지를 실행 한 다음 저장소에 배치하지 않도록 실행 명령을 사용하지만 매우 안전하지 않은 실행 명령으로 끝납니다.
이제 도커 비밀이 존재한다는 것을 알고 있지만 클러스터를 배포하지 않고 어떻게 사용할 수 있습니까? 또는이 데이터를 보호하는 다른 방법이 있습니까?
친애하는,
답변
당신은 할 수 없습니다 … 그것은 Swarm없이 비밀을 지원하지 않습니다. 하나의 노드 만 사용하여“Swarm ”하지 않는 한.
다른 해결책은 다음과 같은 타사 볼트 소프트웨어를 사용하는 것입니다.
그러나 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
컨테이너가 비밀을 출력 한 것을 볼 수 있습니다.