본문 바로가기
DevOps/Docker

[Docker] : 서비스 컨테이너에 설정 정보 전달하기 : config, secret

by 오주현 2022. 3. 4.
반응형

이미지에 내장된 값을 쉽게 변경할 수 없기 때문에 확장성과 유연성이 떨어지게 된다. 이것을 해결하기 위해 docekr run -v 옵션을 통해 호스트에 위치한 설정 파일이나 값을 볼륨으로써 컨테이너에 공유한다.

 

docker run -d --name yml_registry \\
-p 5002:5000 \\
--restart=always \\
-v $(pwd)/config.yml:/etc/docker/registry/config.yml \\
registry:2.6

도커 레지스트리를 생성해 준다.

 

docker run -d \\
--name wordpressdb_hostvolume \\
-e MYSQL_ROOT_PASSWORD=password \\
-e MYSQL_DATABASE=wordpress \\
-v /home/wordpress_db:/var/lib/mysql \\
mysql:5.7

컨테이너 내부의 설정값을 유동적으로 설정하기 위해 e 옵션을 통한 환경 변수도 설정해 준다.

 

비밀번호를 docker run -e 옵션으로 설정했다.

 

하지만 스웜 모드와 같은 서버 클러스터에서 파일 공유를 위해 설정 파일을 호스트마다 설정하는 것은 비효율적이다. 또, 암호와 같은 정보를 노출하는 것도 보안상 위험하다.

 

때문에 스웜 모드에서는 secret와 config라는 기능을 제공한다. secret는 암호나 SSH 키, 인증서 키와 같이 보안에 민감한 데이터를 전송하기 위해 사용하고, config는 nginx나 레지스트리 설정 파일과 같이 암호화할 필요가 없는 설정값들에 대해 쓰일 수 있다.

 

secret와 config는 스웜 모드에서만 사용이 가능하고 docker run 명령어에서는 사용이 불가능하다. MySQL같은 컨테이너는 스웜 모드에서도 동일하게 사용이 가능해서 스웜 모드를 사용해도 문제가 없다.

 

 


📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다.

반응형

댓글