6.1 docker config 명령어
Docker는 구성 및 비밀을 관리하기 위한 내장 메커니즘을 제공해. 이를 통해 컨테이너에서 구성 파일과 민감한 데이터를 안전하고 편리하게 관리할 수 있어. 이 메커니즘은 분산 시스템에서 보안을 강화하고 구성 관리를 간소화하는 데 도움을 줘. 이번 강의에서는 docker config와 docker secret 명령어를 사용하는 방법, 예제 및 최적의 실습을 살펴볼 거야.
구성 작업의 기본
docker config 명령어는 Docker Swarm 서비스에서 사용할 수 있는 구성 파일을 관리하는 데 사용돼. 구성은 애플리케이션 설정 및 매개변수를 전달하는 편리한 방법을 제공해.
docker config의 주요 명령어
docker config create— 새로운 구성 생성docker config ls— 모든 구성 리스트 보기-
docker config inspect— 구성 정보 가져오기 docker config rm— 구성 삭제
docker config 사용 예시
구성 생성
구성을 생성하려면 docker config create 명령어를 사용해. 예를 들어 Nginx에 대한 구성 파일을 만들어 볼게.
nginx.conf 파일을 생성해:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
}
http {
server {
listen 80;
location / {
return 200 'Hello, World!';
add_header Content-Type text/plain;
}
}
}
Docker에서 구성을 생성해:
docker config create nginx_config ./nginx.conf
2. 모든 구성 리스트 보기
생성된 모든 구성을 보려면 docker config ls 명령어를 사용해:
docker config ls
명령어 출력:
ID NAME CREATED UPDATED
f8f8ff8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 nginx_config 10 seconds ago 10 seconds ago
3. 서비스에서 구성 사용
생성된 구성을 사용하여 서비스를 생성해:
docker service create --name nginx --config source=nginx_config,target=/etc/nginx/nginx.conf -p 8080:80 nginx
4. 구성 삭제
구성을 삭제하려면 docker config rm 명령어를 사용해:
docker config rm nginx_config
6.2 명령어 docker secret
docker secret 명령어는 비밀번호, API 키 및 인증서와 같은 "비밀"을 관리하는 데 사용돼. 이 비밀은 Docker Swarm 서비스에서 안전하게 사용할 수 있어. 비밀은 암호화된 상태로 저장되고, 이를 사용하는 서비스에서만 접근 가능해.
docker secret의 주요 명령어들
docker secret create— 새로운 비밀 생성docker secret ls— 모든 비밀 목록docker secret inspect— 비밀에 대한 정보 가져오기docker secret rm— 비밀 삭제
docker secret 사용 예제
1. 비밀 생성
비밀 생성을 위해 docker secret create 명령어를 사용해. 예를 들어, 데이터베이스 비밀번호의 비밀을 생성해보자.
db_password.txt 파일을 만들어:
mysecretpassword
Docker에서 비밀을 생성해:
docker secret create db_password ./db_password.txt
2. 모든 비밀 목록
생성된 모든 비밀을 보려면 docker secret ls 명령어를 사용해:
docker secret ls
명령어 출력:
ID NAME CREATED UPDATED
f8f8ff8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 db_password 10 seconds ago 10 seconds ago
3. 서비스에서 비밀 사용
생성된 비밀을 사용해서 서비스를 만들어:
docker service create --name postgres --secret db_password -e
POSTGRES_PASSWORD_FILE=/run/secrets/db_password postgres
4. 비밀 삭제
비밀을 삭제하려면 docker secret rm 명령어를 사용해:
docker secret rm db_password
6.3 실전 예제와 베스트 프랙티스
실전 예제와 베스트 프랙티스
예제 1: 웹 애플리케이션에서 구성 및 시크릿 사용
구성 파일 및 시크릿 생성
echo "user www-data;" > ./nginx.conf
echo "worker_processes auto;" >> ./nginx.conf
docker config create nginx_config ./nginx.conf
echo "mysecretpassword" > ./db_password.txt
docker secret create db_password ./db_password.txt
구성과 시크릿을 사용하는 서비스 생성
docker service create --name nginx --config source=nginx_config,target=/etc/nginx/nginx.conf -p
8080:80 nginx
docker service create --name postgres --secret db_password -e
POSTGRES_PASSWORD_FILE=/run/secrets/db_password postgres
예제 2: 구성 업데이트
구성 파일 내용 업데이트
nginx.conf 파일을 수정하세요:
user www-data;
worker_processes 4;
구성의 새 버전 생성
docker config create nginx_config_v2 ./nginx.conf
새로운 구성으로 서비스 업데이트
docker service update --config-rm nginx_config --config-add
source=nginx_config_v2,target=/etc/nginx/nginx.conf nginx
GO TO FULL VERSION