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