도커 스웜 설정 정보 세팅

정원식·2023년 12월 16일

Docker Swarm 정리

목록 보기
4/7

22년 2월에 작성한 글입니다.

설정 정보 세팅

  • 애플리케이션과는 별도로 설정 정보를 전달해야할 일이 있음 (Spring Boot 의 application.properties)
  • 단순 도커 컨테이너에서는
    • 볼륨을 이용하여 설정 정보 전달
    • 환경 변수 이용
  • 그러나 클러스터 구조에서는 모든 호스트마다 마련해두는것은 비효율적이며 보안상으로도 좋지 않음
    • 따라서 secret 과 config 를 이용하여 설정

secret

secret create

  • 비밀번호 생성
  • 매니저 노드 간에 암호화 된 상태로 저장
  • 태스크에는 secret 이 메모리에 저장됨
docker secret create [OPTIONS] SECRET [file|-]

secret ls

  • 비밀번호 목록
docker secret ls [OPTIONS]

secret 사용

  • docker service create--secret 옵션을 통해 컨테이너로 공유된 값은 기본적으로 컨테이너 내부의 /run/secrets/** 에 마운트됨 관련 Doc

secret 수정

  • docker service update--secret-add, --secret-rm 사용하여 업데이트

secret 예제

  • 비밀번호 생성
echo 1q2w3e4r | docker secret create my_mysql_password -
  • 생성된 비번 확인
docker secret ls
  • 서비스 생성
docker service create \
--name mysql \
--replicas 1 \
--secret source=my_mysql_password,target=mysql_root_password \      # /run/secrets/mysql_root_password 파일에 1q2w3e4r 저장
--secret source=my_mysql_password,target=mysql_password \           # /run/secrets/mysql_password 파일에 1q2w3e4r 저장
-e MYSQL_ROOT_PASSWORD_FILE="/run/secrets/mysql_root_password" \    # /run/secrets/mysql_root_password 사용
-e MYSQL_PASSWORD_FILE="/run/secrets/mysql_password" \              # /run/secrets/mysql_password 사용
-e MYSQL_DATABASE="wordpress" \
mysql:5.7
  • 서비스 생성후 해당 컨테이너에서 확인
$ docker exec 61435ef72a35 ls /run/secrets

mysql_password
mysql_root_password

$ docker exec 61435ef72a35 cat /run/secrets/mysql_password

1q2w3e4r

config

config create

  • base64 로 인코딩되어 저장됨
docker config create [OPTIONS] CONFIG file|-

config 사용

  • docker service create--config 옵션을 통해 컨테이너로 공유된 값은 기본적으로 컨테이너 내부의 /** 에 마운트됨 관련 Doc

config 수정

  • docker service update--config-add, --config-rm 사용하여 업데이트

config 예제

  • config 생성
docker config create registry-config config.yml
  • config 사용
docker service create --name yml_registry -p 5000:5000 \
--config source=registry-config,target=/etc/docker/registry/config.yml \
registry:2.6

Reference

profile
매일매일 성장하고 싶은 백엔드 개발자입니다.

0개의 댓글