728x90
--restart=unless-stopped 옵션은 Docker 컨테이너의 자동 재시작 정책을 설정하는 데 사용됩니다.
🔹 --restart=unless-stopped 의미
docker run -itd -p 4002:4002 --restart=unless-stopped sim_api
위 명령어에서 --restart=unless-stopped는 다음과 같은 동작을 합니다:
✅ 컨테이너가 자동으로 재시작됨
- Docker가 재부팅되거나, 컨테이너가 예기치 않게 종료될 경우 자동으로 재시작됩니다.
❌ 수동으로 docker stop 명령어로 중지하면 재시작되지 않음
- 사용자가 직접 docker stop xdt_sim_api로 중지한 경우, 다시 실행되지 않습니다.
- 하지만 Docker를 재시작해도 자동으로 실행되지 않음.
🔹 --restart 옵션 비교
옵션 동작 방식
no (기본값) | 컨테이너가 절대 자동으로 재시작되지 않음 |
always | 컨테이너가 항상 재시작됨 (사용자가 docker stop 해도 재시작됨) |
unless-stopped | 컨테이너가 자동으로 재시작되지만, 사용자가 docker stop으로 중지하면 다시 실행되지 않음 |
on-failure[:N] | 비정상 종료(오류 코드 0이 아님) 시 재시작됨 (선택적으로 N번까지만 재시작 가능) |
🔹 언제 사용하면 좋을까?
- 서버 애플리케이션(API, DB 등)이 예기치 않게 중지되는 것을 방지하고 싶을 때
- 시스템이 재부팅되어도 컨테이너가 자동으로 재실행되도록 하고 싶을 때
- 하지만 docker stop을 실행한 경우 다시 자동으로 시작되지 않기를 원할 때
✅ 추천 사용 예시
docker run -itd -p 4002:4002 --restart=unless-stopped sim_api
이렇게 실행하면, 컨테이너가 예기치 않게 종료되더라도 다시 시작되지만, docker stop을 하면 자동 재시작되지 않습니다.
이제 이해되셨나요? 😊
'공부 > Infra' 카테고리의 다른 글
Nginx에서 HTTPS로 받고, 내부 Kestrel에서는 HTTP로 처리해도 괜찮을까? (0) | 2025.02.13 |
---|---|
chown과 chmod의 의미 (0) | 2025.02.12 |
nano, vim, vi (0) | 2025.02.04 |
docker 명령어(-d, -itd) (0) | 2025.02.04 |
docker ./gradlew: not found (0) | 2025.02.03 |