Docker Restart 사용법 완벽 가이드! 실행 중인 컨테이너 재시작하기

Docker를 운영하다 보면 실행 중인 컨테이너를 다시 시작해야 하는 상황이 자주 발생합니다. 애플리케이션 설정을 변경했거나 메모리 누수로 인해 성능이 저하되었을 때, 또는 장애 복구를 위해 서비스를 재시작해야 하는 경우가 대표적입니다.

이럴 때 사용하는 명령어가 바로 docker restart입니다.

Docker Restart는 실행 중인 컨테이너를 안전하게 종료한 후 다시 시작하는 명령어입니다. 내부적으로는 docker stopdocker start를 순차적으로 수행하며, 컨테이너를 삭제하지 않고 동일한 설정과 데이터를 유지한 채 다시 실행합니다.

이번 글에서는 Docker Restart의 개념부터 기본 사용법, 주요 옵션, Docker Stop·Start와의 차이점, 실무 활용 사례까지 자세히 알아보겠습니다.

Docker Restart란 무엇인가?

Docker Restart는 실행 중인 컨테이너를 재시작하는 명령어입니다.

현재 실행 중인 프로세스를 정상적으로 종료한 후 동일한 컨테이너를 다시 실행합니다.

컨테이너 ID와 설정, 볼륨 데이터는 그대로 유지됩니다.

운영 환경에서 가장 자주 사용하는 Docker 관리 명령어 중 하나입니다.

Docker Restart는 언제 사용하는가?

다음과 같은 상황에서 많이 사용됩니다.

  • 서비스 재시작
  • 설정 변경 적용
  • 메모리 누수 해결
  • 장애 복구
  • 애플리케이션 초기화
  • 운영 서버 유지보수

특히 웹 서버와 API 서버를 운영할 때 자주 사용하는 명령어입니다.

Docker Restart 기본 사용법

기본 명령어는 다음과 같습니다.

docker restart <컨테이너명>

예를 들어 web-server 컨테이너를 재시작하려면 다음과 같이 실행합니다.

docker restart web-server

정상적으로 실행되면 컨테이너 이름이 출력됩니다.

web-server

컨테이너는 종료 후 즉시 다시 실행됩니다.

여러 컨테이너 동시에 재시작

여러 개의 컨테이너를 한 번에 재시작할 수도 있습니다.

docker restart nginx api-server redis

운영 서버 점검 후 여러 서비스를 동시에 다시 시작할 때 유용합니다.

종료 대기 시간 지정

기본적으로 Docker는 정상 종료를 기다린 후 다시 실행합니다.

대기 시간을 변경하려면 -t 옵션을 사용합니다.

docker restart -t 30 web-server

위 명령은 최대 30초 동안 정상 종료를 기다린 후 다시 시작합니다.

애플리케이션이 종료 작업을 수행할 시간이 필요한 경우 유용합니다.

재시작 후 상태 확인

재시작이 완료되면 상태를 확인합니다.

docker ps

출력 예시입니다.

CONTAINER ID   IMAGE   STATUS
8c27f4ab93de   nginx   Up 12 seconds

Up 시간이 짧다면 방금 재시작된 것입니다.

Docker Restart와 Docker Stop + Start의 차이

Docker Restart는 내부적으로 Stop과 Start를 순차적으로 수행합니다.

하지만 하나의 명령으로 처리되기 때문에 관리가 더욱 편리합니다.

Docker RestartDocker Stop + Docker Start
한 번에 재시작두 번의 명령 필요
운영 관리 간편단계별 실행 가능
일반적인 재시작세부 제어 가능

일반적인 운영에서는 Docker Restart를 사용하는 것이 더욱 효율적입니다.

Docker Restart 실무 활용 예제

Docker Restart는 운영 서버에서 가장 많이 사용하는 Docker 관리 명령어 중 하나입니다. 설정 변경 적용, 장애 복구, 메모리 누수 해결 등 다양한 상황에서 활용되며 서비스 운영에 필수적인 명령어입니다.

웹 서버 재시작

Nginx 웹 서버를 재시작하는 가장 기본적인 예제입니다.

docker restart nginx

서비스가 정상적으로 종료된 후 즉시 다시 실행됩니다.

재시작 여부는 다음 명령으로 확인합니다.

docker ps

출력 예시입니다.

CONTAINER ID   IMAGE   STATUS
84b7d2ab43cd   nginx   Up 5 seconds

Up 시간이 짧다면 정상적으로 재시작된 것입니다.

API 서버 재시작

설정을 변경한 후 API 서버를 다시 시작합니다.

docker restart api-server

새로운 설정이 적용된 상태로 서비스가 실행됩니다.

여러 서비스 동시에 재시작

운영 서버에서는 여러 서비스를 동시에 재시작하는 경우도 많습니다.

docker restart nginx api-server redis mysql

지정한 모든 컨테이너가 순차적으로 재시작됩니다.

종료 대기 시간 지정

애플리케이션이 종료 작업을 수행할 시간이 필요한 경우입니다.

docker restart -t 60 database

최대 60초 동안 정상 종료를 기다린 후 다시 시작합니다.

데이터베이스처럼 종료 시간이 필요한 서비스에서 자주 사용하는 옵션입니다.

Linux 서버 문제 해결

운영 중인 웹 서버에서 메모리 누수로 인해 응답 속도가 점점 느려지는 문제가 발생했습니다.

먼저 현재 리소스 사용량을 확인했습니다.

docker stats

메모리 사용량이 지속적으로 증가하는 것을 확인했습니다.

서비스를 빠르게 정상화하기 위해 컨테이너를 재시작했습니다.

docker restart web-server

재시작 후 다시 확인했습니다.

docker stats

메모리 사용량이 정상 수준으로 감소했고 서비스 응답 속도도 회복되었습니다.

이후 애플리케이션 로그를 분석하여 메모리 누수 원인을 수정하고 새 이미지를 배포하여 근본적인 문제를 해결했습니다.

Docker Restart 사용 시 주의사항

Docker Restart를 사용할 때는 다음 사항을 알아두는 것이 좋습니다.

첫 번째는 재시작 과정에서 잠시 서비스가 중단된다는 점입니다.

고가용성이 필요한 환경에서는 Load Balancer나 여러 개의 컨테이너를 함께 운영하는 것이 좋습니다.

두 번째는 메모리에 저장된 데이터는 모두 초기화됩니다.

필요한 데이터는 반드시 볼륨이나 외부 데이터베이스에 저장해야 합니다.

세 번째는 반복적으로 Restart가 필요한 상황이라면 근본적인 원인을 분석해야 합니다.

재시작은 임시 해결책일 뿐이며 애플리케이션 오류는 별도로 수정해야 합니다.

네 번째는 종료 시간이 긴 서비스에서는 -t 옵션을 적절히 설정하는 것이 좋습니다.

Best Practice

Docker Restart를 사용할 때는 다음과 같은 방법을 추천합니다.

  • 재시작 전 docker logs로 오류를 확인합니다.
  • 재시작 후 docker ps로 상태를 확인합니다.
  • docker stats로 리소스 사용량을 점검합니다.
  • 운영 환경에서는 서비스 영향을 최소화하는 시간에 작업합니다.
  • 반복적인 Restart는 애플리케이션 문제를 의심합니다.
  • 장애 분석 후에는 수정된 이미지를 다시 배포합니다.

이러한 방법을 적용하면 운영 환경에서도 안정적으로 서비스를 관리할 수 있습니다.

자주 묻는 질문

Docker Restart를 사용하면 컨테이너 ID가 변경되나요?

아닙니다.

동일한 컨테이너를 다시 시작하는 것이므로 컨테이너 ID는 유지됩니다.

Docker Restart와 Docker Start의 차이는 무엇인가요?

Docker Restart는 실행 중인 컨테이너를 다시 시작합니다.

Docker Start는 종료된 컨테이너를 실행할 때 사용합니다.

재시작하면 데이터가 삭제되나요?

볼륨에 저장된 데이터는 유지됩니다.

하지만 메모리에만 존재하던 데이터는 초기화됩니다.

Restart 후에도 문제가 계속 발생합니다.

애플리케이션 자체의 문제일 가능성이 높습니다.

docker logsdocker inspect를 이용하여 원인을 분석하는 것이 좋습니다.

마무리

Docker Restart는 실행 중인 컨테이너를 안전하게 종료한 후 다시 시작하는 가장 기본적인 Docker 관리 명령어입니다.

서비스 설정 변경, 메모리 누수 해결, 장애 복구 등 다양한 운영 상황에서 활용되며, 컨테이너를 삭제하지 않고 동일한 환경을 유지한 채 서비스를 다시 실행할 수 있다는 장점이 있습니다.

Docker Logs, Docker Stats, Docker Inspect와 함께 활용하면 장애를 더욱 빠르게 분석하고 안정적으로 서비스를 운영할 수 있습니다.

댓글 남기기