CodeGym /행동 /Docker SELF /구성 및 비밀 작업

구성 및 비밀 작업

Docker SELF
레벨 20 , 레슨 0
사용 가능

6.1 docker config 명령어

Docker는 구성 및 비밀을 관리하기 위한 내장 메커니즘을 제공해. 이를 통해 컨테이너에서 구성 파일과 민감한 데이터를 안전하고 편리하게 관리할 수 있어. 이 메커니즘은 분산 시스템에서 보안을 강화하고 구성 관리를 간소화하는 데 도움을 줘. 이번 강의에서는 docker configdocker secret 명령어를 사용하는 방법, 예제 및 최적의 실습을 살펴볼 거야.

구성 작업의 기본

docker config 명령어는 Docker Swarm 서비스에서 사용할 수 있는 구성 파일을 관리하는 데 사용돼. 구성은 애플리케이션 설정 및 매개변수를 전달하는 편리한 방법을 제공해.

docker config의 주요 명령어

  1. docker config create — 새로운 구성 생성
  2. docker config ls — 모든 구성 리스트 보기
  3. docker config inspect — 구성 정보 가져오기
  4. docker config rm — 구성 삭제

docker config 사용 예시

구성 생성

구성을 생성하려면 docker config create 명령어를 사용해. 예를 들어 Nginx에 대한 구성 파일을 만들어 볼게.

nginx.conf 파일을 생성해:

nginx

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에서 구성을 생성해:

Terminal

docker config create nginx_config ./nginx.conf

2. 모든 구성 리스트 보기

생성된 모든 구성을 보려면 docker config ls 명령어를 사용해:

Terminal

docker config ls

명령어 출력:

Terminal

ID                                                                                       NAME           CREATED             UPDATED
f8f8ff8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8   nginx_config    10 seconds ago     10 seconds ago

3. 서비스에서 구성 사용

생성된 구성을 사용하여 서비스를 생성해:

Terminal

docker service create --name nginx --config source=nginx_config,target=/etc/nginx/nginx.conf -p 8080:80 nginx

4. 구성 삭제

구성을 삭제하려면 docker config rm 명령어를 사용해:

Terminal

docker config rm nginx_config

6.2 명령어 docker secret

docker secret 명령어는 비밀번호, API 키 및 인증서와 같은 "비밀"을 관리하는 데 사용돼. 이 비밀은 Docker Swarm 서비스에서 안전하게 사용할 수 있어. 비밀은 암호화된 상태로 저장되고, 이를 사용하는 서비스에서만 접근 가능해.

docker secret의 주요 명령어들

  1. docker secret create — 새로운 비밀 생성
  2. docker secret ls — 모든 비밀 목록
  3. docker secret inspect — 비밀에 대한 정보 가져오기
  4. docker secret rm — 비밀 삭제

docker secret 사용 예제

1. 비밀 생성

비밀 생성을 위해 docker secret create 명령어를 사용해. 예를 들어, 데이터베이스 비밀번호의 비밀을 생성해보자.

db_password.txt 파일을 만들어:

Text

mysecretpassword

Docker에서 비밀을 생성해:

Terminal

docker secret create db_password ./db_password.txt

2. 모든 비밀 목록

생성된 모든 비밀을 보려면 docker secret ls 명령어를 사용해:

Terminal

docker secret ls

명령어 출력:

Terminal

ID                                                                                    NAME           CREATED             UPDATED
f8f8ff8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8   db_password    10 seconds ago     10 seconds ago

3. 서비스에서 비밀 사용

생성된 비밀을 사용해서 서비스를 만들어:

Terminal

docker service create --name postgres --secret db_password -e 
POSTGRES_PASSWORD_FILE=/run/secrets/db_password postgres

4. 비밀 삭제

비밀을 삭제하려면 docker secret rm 명령어를 사용해:

Terminal

docker secret rm db_password

6.3 실전 예제와 베스트 프랙티스

실전 예제와 베스트 프랙티스

예제 1: 웹 애플리케이션에서 구성 및 시크릿 사용

구성 파일 및 시크릿 생성

Terminal

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

구성과 시크릿을 사용하는 서비스 생성

Terminal

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 파일을 수정하세요:

nginx

user www-data;
worker_processes 4;

구성의 새 버전 생성

Terminal

docker config create nginx_config_v2 ./nginx.conf

새로운 구성으로 서비스 업데이트

Terminal

docker service update --config-rm nginx_config --config-add 
source=nginx_config_v2,target=/etc/nginx/nginx.conf nginx
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION