docker service update
docker swarm에서 실행 중인 서비스를 업데이트하는 데 사용됩니다. 이 명령어를 통해서 서비스의 구성, 예를 들어 레플리카 수, 사용 이미지, 환경 변수 등을 변경할 수 있습니다.
docker service update [OPTIONS] SERVICE
주요 옵션
- --replicas: 서비스의 레플리카 수 변경
- --image: 서비스에 사용할 이미지 업데이트
- --env-add or --env-rm: 서비스의 환경 변수 추가 또는 제거
- --force: 변경 사항이 없어도 서비스 업데이트 강제 실행
예시
<service-name>의 레플리카 수를 변경합니다.
docker service update --replicas 5 <service-name>
<service-name>에서 사용되는 이미지를 변경합니다.
docker service update --image <change-image> <service-name>
환경 변수 추가 제거합니다.
docker service update --env-add env1=1 <service-name>
docker service update --env-rm env1 <service-name>
--force 옵션은 서비스 중단이 발생하더라도 즉시 서비스를 업데이트할 때 사용됩니다. 기본적으로 docker swarm은 서비스를 순차적으로 업데이트하여 중단을 최소화하려고 합니다. 그러나 긴급하게 변경 사항을 적용해야 할 때 이 옵션이 유용합니다.
docker service update --force <service-name>
docker service scale
docker swarm에서 서비스의 레플리카 수를 조정하는 데 사용됩니다.
docker service scale <service-name>=<replica-count>
docker service scale과 update --replicas 차이점
scale로도 update로도 레플리카 수를 조정하는데 사용될 수 있습니다. 이 둘의 차이점은 scale을 이용할 경우 여러 개의 서비스의 레플리카 수를 조정하는 데 사용되지만 update는 하나의 서비스밖에 사용되지 못합니다.
docker service rm
docker swarm에서 하나 이상의 서비스를 제거하는 데 사용됩니다. 이 명령어는 지정된 서비스와 관련된 모든 작업을 중지하고 제거합니다.
docker service rm <service-name>
docker stack deploy
docker compose 파일을 사용하여 swarm 클러스터에 스택을 배포하는 데 사용됩니다. stack은 함께 배포되는 서비스들의 그룹입니다.
docker stack deploy -c docker-compose.yml <stack-name>
- -c or --compose-file: 사용할 docker compose 파일 지정
- --prune: compose 파일에 정의되지 않은 서비스 또는 컨테이너 제거
- --resolve-image: 이미지 변경 사항을 발견하면 stack을 다시 배포하는 조건입니다.
docker stack ls
현재 swarm에 배포된 모든 stack을 나열합니다.
docker stack ps
특정 스택의 작업 또는 레플리카를 나열합니다.
docker stack ps [OPTIONS] <stack-name>
docker stack rm
도커 스택과 해당 스택과 관련된 모든 서비스 및 네트워크를 제거합니다.
docker stack rm <stack-name>
docker stack services
스택에 포함된 서비스를 나열합니다.
docker stack services <stack-name>
docker swarm secret
비밀번호, 인증 토큰 등의 민감한 데이터를 안전하게 저장하고 관리하는 기능입니다.
시크릿 생성
echo "password" | docker secret create password -
docker compose 파일에서 시크릿 생성
version: "3"
services:
app:
image: my-node-app
secrets:
- source: db_password
target: /run/secrets/db_password
mode: 0400
secrets:
db_password:
external: true
node.js 애플리케이션에서 시크릿 생성
const fs = require('fs');
const password = fs.readFileSync('/run/secrets/db_password', 'utf8');
console.log('Database password:', password);
개발환경에서는 external를 false로 설정하고 사용할 수 있습니다.
'Docker' 카테고리의 다른 글
[Docker] 포트 관리하기 (0) | 2024.06.19 |
---|---|
[Docker] network 사용방법 (0) | 2024.06.19 |
[Docker] Swarm 명령 사용법-1 (0) | 2024.06.18 |
[Docker] ARG vs ENV 차이점 (0) | 2024.06.17 |
[Docker] RUN vs CMD vs ENTRYPOINT 차이점 (0) | 2024.06.17 |