Swarm의 도커 비밀
이 기사를 읽기 전에 필요한 것은 무엇입니까?
Docker 비밀은 무엇입니까?
문서에서 제공된 정의를 인용합니다.
"Docker Swarm 서비스 측면에서 비밀은 암호, SSH 개인 키, SSL 인증서 또는 네트워크를 통해 전송되거나 Dockerfile 또는 애플리케이션의 소스 코드. ..."
그것들을 만드는 방법?
비밀을 생성하려면 다음 명령을 실행해야 합니다.
am@animusna:~$echo "myPlainSecret" | docker secret create mysecret
acvs814nso28yn105wqc32o8e
이 명령의 출력은 암호의 id(acvs814nso28yn105wqc32o8e)입니다.
비밀이 생성되었는지 확인하려면 다음 명령을 실행합니다.
am@animusna:~$docker secret ls
ID NAME DRIVER CREATED UPDATED
acvs814nso28yn105wqc32o8e mysecret 5 seconds ago 5 seconds ago
그것들을 사용하는 방법?
시크릿을 사용하려면 서비스 생성 중에 매핑해야 합니다(이 경우 documentation과 같은 redis).
am@animusna:~$docker service create --name redis --secret mysecret redis:alpine
서비스에서 비밀을 매핑할 때 Docker는/run/secrets 폴더에 비밀 이름(이 경우 mysecret)과 같은 이름의 파일을 생성하고 다음 명령을 실행할 수 있음을 증명합니다.
am@animusna:~$docker container exec $(docker ps --filter name=redis -q) cat /run/secrets/mysecret
myPlainSecret
여기서 출력은 우리가 생성한 비밀(myPlainSecret)의 일반 텍스트입니다.
실제 시나리오 예: Docker 비밀을 사용한 Redis 인증
Redis 서버를 보호하려는 경우 이전에 만든 암호를 암호로 사용하여 서버에 연결할 수 있습니다.
docker compose 파일을 준비합시다.
version: "3.1"
secrets:
mysecret:
external: true #external=true means we've created the secret before.
services:
redis:
image: redis
secrets:
- mysecret #We are declaring we are using this secret in this service.
command: bash -c "/startup/up-redis.sh" #The command we use to start our Redis server (we execute a shell script).
ports:
- "6379:6379"
volumes:
- "/home/am/up-redis.sh:/startup/up-redis.sh" # Mapping in the container our script.
deploy:
replicas: 1
restart_policy:
condition: on-failure
특정 경로(제 경우에는/home/am/)에서 서버 up-redis.sh에 대한 시작 스크립트를 준비하겠습니다.
#!/bin/sh
#Script to startup Redis Server.
#Reading secret in a temporary variable.
REDIS_PASSWORD=`cat /run/secrets/mysecret`
#Start Redis server
redis-server --appendonly yes --requirepass "$REDIS_PASSWORD"
이 스크립트에서 --requirepass 옵션을 사용하여/run/secrets/mysecret에서 암호를 복구하고 REDIS_PASSWORD 변수에 넣는 옵션을 사용하여 서버의 암호를 설정합니다.
이제 모든 것이 준비되었습니다. 서비스를 시작할 수 있습니다.
am@animusna:~$docker stack deploy --compose-file=docker-compose.yaml myapp_stack
Creating network myapp_stack_default
Creating service myapp_stack_redis
Redis 서비스에 액세스할 수 있는 암호를 설정했는지 확인하려면 다음 명령을 실행해 보겠습니다.
am@animusna:~$echo -e "AUTH myPlainSecret\nPING" | redis-cli
OK
PONG
여기서 우리는 redis-cli에서 일반 비밀 myPlainSecret으로 인증하기 위해 AUTH 명령을 실행한 다음 PING 명령을 실행하여 인증되었는지 확인합니다(우리의 경우 PONG을 얻었기 때문에 예).
결론
이 기사에서는 연결 암호가 될 수 있는 것처럼 민감한 데이터를 보호하기 위해 Docker 비밀을 가능하고 쉽게 사용하는 방법을 보여주었습니다. 암호 사용은 개발자가 자신의 암호를 사용하여 개발 환경을 구성해야 하는 개발 시나리오와 마찬가지로 배포 시나리오에서도 매우 유용합니다. 내 경험에 따르면 Docker 비밀은 유용하고 관리하기 쉬우며 Docker Swarm을 (마이크로) 서비스의 오케스트레이터로 선택하는 경우 사용할 가치가 있습니다.
Reference
이 문제에 관하여(Swarm의 도커 비밀), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/animusna/docker-secrets-in-swarm-39ee
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
비밀을 생성하려면 다음 명령을 실행해야 합니다.
am@animusna:~$echo "myPlainSecret" | docker secret create mysecret
acvs814nso28yn105wqc32o8e
이 명령의 출력은 암호의 id(acvs814nso28yn105wqc32o8e)입니다.
비밀이 생성되었는지 확인하려면 다음 명령을 실행합니다.
am@animusna:~$docker secret ls
ID NAME DRIVER CREATED UPDATED
acvs814nso28yn105wqc32o8e mysecret 5 seconds ago 5 seconds ago
그것들을 사용하는 방법?
시크릿을 사용하려면 서비스 생성 중에 매핑해야 합니다(이 경우 documentation과 같은 redis).
am@animusna:~$docker service create --name redis --secret mysecret redis:alpine
서비스에서 비밀을 매핑할 때 Docker는/run/secrets 폴더에 비밀 이름(이 경우 mysecret)과 같은 이름의 파일을 생성하고 다음 명령을 실행할 수 있음을 증명합니다.
am@animusna:~$docker container exec $(docker ps --filter name=redis -q) cat /run/secrets/mysecret
myPlainSecret
여기서 출력은 우리가 생성한 비밀(myPlainSecret)의 일반 텍스트입니다.
실제 시나리오 예: Docker 비밀을 사용한 Redis 인증
Redis 서버를 보호하려는 경우 이전에 만든 암호를 암호로 사용하여 서버에 연결할 수 있습니다.
docker compose 파일을 준비합시다.
version: "3.1"
secrets:
mysecret:
external: true #external=true means we've created the secret before.
services:
redis:
image: redis
secrets:
- mysecret #We are declaring we are using this secret in this service.
command: bash -c "/startup/up-redis.sh" #The command we use to start our Redis server (we execute a shell script).
ports:
- "6379:6379"
volumes:
- "/home/am/up-redis.sh:/startup/up-redis.sh" # Mapping in the container our script.
deploy:
replicas: 1
restart_policy:
condition: on-failure
특정 경로(제 경우에는/home/am/)에서 서버 up-redis.sh에 대한 시작 스크립트를 준비하겠습니다.
#!/bin/sh
#Script to startup Redis Server.
#Reading secret in a temporary variable.
REDIS_PASSWORD=`cat /run/secrets/mysecret`
#Start Redis server
redis-server --appendonly yes --requirepass "$REDIS_PASSWORD"
이 스크립트에서 --requirepass 옵션을 사용하여/run/secrets/mysecret에서 암호를 복구하고 REDIS_PASSWORD 변수에 넣는 옵션을 사용하여 서버의 암호를 설정합니다.
이제 모든 것이 준비되었습니다. 서비스를 시작할 수 있습니다.
am@animusna:~$docker stack deploy --compose-file=docker-compose.yaml myapp_stack
Creating network myapp_stack_default
Creating service myapp_stack_redis
Redis 서비스에 액세스할 수 있는 암호를 설정했는지 확인하려면 다음 명령을 실행해 보겠습니다.
am@animusna:~$echo -e "AUTH myPlainSecret\nPING" | redis-cli
OK
PONG
여기서 우리는 redis-cli에서 일반 비밀 myPlainSecret으로 인증하기 위해 AUTH 명령을 실행한 다음 PING 명령을 실행하여 인증되었는지 확인합니다(우리의 경우 PONG을 얻었기 때문에 예).
결론
이 기사에서는 연결 암호가 될 수 있는 것처럼 민감한 데이터를 보호하기 위해 Docker 비밀을 가능하고 쉽게 사용하는 방법을 보여주었습니다. 암호 사용은 개발자가 자신의 암호를 사용하여 개발 환경을 구성해야 하는 개발 시나리오와 마찬가지로 배포 시나리오에서도 매우 유용합니다. 내 경험에 따르면 Docker 비밀은 유용하고 관리하기 쉬우며 Docker Swarm을 (마이크로) 서비스의 오케스트레이터로 선택하는 경우 사용할 가치가 있습니다.
Reference
이 문제에 관하여(Swarm의 도커 비밀), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/animusna/docker-secrets-in-swarm-39ee
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
am@animusna:~$docker service create --name redis --secret mysecret redis:alpine
am@animusna:~$docker container exec $(docker ps --filter name=redis -q) cat /run/secrets/mysecret
myPlainSecret
version: "3.1"
secrets:
mysecret:
external: true #external=true means we've created the secret before.
services:
redis:
image: redis
secrets:
- mysecret #We are declaring we are using this secret in this service.
command: bash -c "/startup/up-redis.sh" #The command we use to start our Redis server (we execute a shell script).
ports:
- "6379:6379"
volumes:
- "/home/am/up-redis.sh:/startup/up-redis.sh" # Mapping in the container our script.
deploy:
replicas: 1
restart_policy:
condition: on-failure
#!/bin/sh
#Script to startup Redis Server.
#Reading secret in a temporary variable.
REDIS_PASSWORD=`cat /run/secrets/mysecret`
#Start Redis server
redis-server --appendonly yes --requirepass "$REDIS_PASSWORD"
am@animusna:~$docker stack deploy --compose-file=docker-compose.yaml myapp_stack
Creating network myapp_stack_default
Creating service myapp_stack_redis
am@animusna:~$echo -e "AUTH myPlainSecret\nPING" | redis-cli
OK
PONG
이 기사에서는 연결 암호가 될 수 있는 것처럼 민감한 데이터를 보호하기 위해 Docker 비밀을 가능하고 쉽게 사용하는 방법을 보여주었습니다. 암호 사용은 개발자가 자신의 암호를 사용하여 개발 환경을 구성해야 하는 개발 시나리오와 마찬가지로 배포 시나리오에서도 매우 유용합니다. 내 경험에 따르면 Docker 비밀은 유용하고 관리하기 쉬우며 Docker Swarm을 (마이크로) 서비스의 오케스트레이터로 선택하는 경우 사용할 가치가 있습니다.
Reference
이 문제에 관하여(Swarm의 도커 비밀), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/animusna/docker-secrets-in-swarm-39ee텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)