Docker Update 사용법 완벽 가이드! 실행 중인 컨테이너 리소스 변경하기

Docker를 운영하다 보면 실행 중인 컨테이너의 CPU나 메모리 사용량을 조정해야 하는 상황이 자주 발생합니다. 처음에는 충분하다고 생각했던 리소스가 서비스 사용량 증가로 부족해질 수도 있고, 반대로 테스트용 컨테이너가 너무 많은 리소스를 사용하여 다른 서비스에 영향을 줄 수도 있습니다.

이러한 경우 컨테이너를 삭제하고 다시 생성하는 대신 현재 실행 중인 상태에서 리소스 제한을 변경할 수 있는 명령어가 바로 docker update입니다.

Docker Update는 실행 중인 컨테이너의 CPU, 메모리, 프로세스 제한 등의 리소스 설정을 변경하는 명령어입니다. 서비스 중단 없이 일부 리소스를 조정할 수 있기 때문에 운영 환경에서도 매우 자주 활용됩니다.

이번 글에서는 Docker Update의 개념부터 기본 사용법, 주요 옵션, 실무 활용 사례, 운영 시 주의사항까지 자세히 알아보겠습니다.

Docker Update란 무엇인가?

Docker Update는 실행 중인 컨테이너의 리소스 제한(Resource Limits)을 변경하는 명령어입니다.

컨테이너를 삭제하거나 다시 생성하지 않아도 CPU, 메모리, 프로세스 개수 등의 제한을 변경할 수 있습니다.

운영 서버에서 서비스 중단을 최소화하면서 리소스를 조정해야 할 때 매우 유용합니다.

Docker Update는 언제 사용하는가?

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

  • 메모리 부족 해결
  • CPU 사용량 제한
  • 테스트 서버 리소스 조정
  • 운영 서버 성능 튜닝
  • 컨테이너 과부하 방지
  • 리소스 재분배

특히 여러 개의 컨테이너를 운영하는 서버에서 자주 사용됩니다.

Docker Update 기본 사용법

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

docker update [옵션] <컨테이너명>

예를 들어 web-server 컨테이너의 메모리를 1GB로 변경하려면 다음과 같이 실행합니다.

docker update --memory 1g web-server

성공하면 컨테이너는 계속 실행된 상태에서 메모리 제한만 변경됩니다.

메모리 제한 변경

메모리 제한은 다음과 같이 설정할 수 있습니다.

docker update --memory 2g nginx

2GB 이상의 메모리를 사용할 수 없도록 제한합니다.

CPU 개수 제한

CPU 사용량도 제한할 수 있습니다.

docker update --cpus 2 nginx

최대 2개의 CPU만 사용할 수 있도록 설정합니다.

멀티코어 서버에서 자주 사용하는 옵션입니다.

CPU Shares 변경

상대적인 CPU 우선순위를 조정할 수도 있습니다.

docker update --cpu-shares 512 nginx

기본값은 일반적으로 1024이며 숫자가 높을수록 CPU 우선순위가 높아집니다.

프로세스 개수 제한

프로세스 개수를 제한하는 것도 가능합니다.

docker update --pids-limit 200 nginx

최대 200개의 프로세스만 생성할 수 있습니다.

과도한 프로세스 생성으로 인한 시스템 장애를 예방하는 데 도움이 됩니다.

변경 내용 확인

변경된 리소스는 Docker Inspect로 확인할 수 있습니다.

docker inspect nginx

HostConfig 항목에서 변경된 CPU와 메모리 설정을 확인할 수 있습니다.

Docker Update 실무 활용 예제

Docker Update는 운영 중인 컨테이너의 리소스를 서비스 중단 없이 조정할 수 있기 때문에 운영 서버에서 매우 자주 사용하는 명령어입니다. 특히 갑작스러운 트래픽 증가나 메모리 부족 문제를 해결할 때 효과적입니다.

메모리 부족 해결

웹 서버가 메모리 부족으로 자주 종료되는 경우입니다.

현재 메모리 제한을 512MB에서 2GB로 변경합니다.

docker update --memory 2g web-server

서비스를 중단하지 않고 메모리 제한만 즉시 변경할 수 있습니다.

CPU 사용량 제한

특정 컨테이너가 CPU를 과도하게 사용하는 경우입니다.

docker update --cpus 1 api-server

최대 1개의 CPU만 사용할 수 있도록 제한하여 다른 서비스에 영향을 주지 않도록 설정할 수 있습니다.

여러 컨테이너 동시에 변경

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

docker update --cpus 2 web-server api-server

운영 중인 여러 서비스의 리소스를 동시에 조정할 수 있습니다.

프로세스 제한 설정

과도한 프로세스 생성으로 인한 장애를 방지합니다.

docker update --pids-limit 300 nginx

프로세스가 비정상적으로 증가하는 상황을 예방할 수 있습니다.

CPU 우선순위 변경

중요한 서비스에 CPU 우선순위를 높게 설정할 수도 있습니다.

docker update --cpu-shares 2048 database

반대로 테스트 서버는 낮게 설정할 수 있습니다.

docker update --cpu-shares 256 test-server

CPU 자원을 효율적으로 분배할 수 있습니다.

Linux 서버 문제 해결

운영 중인 API 서버에서 메모리 부족으로 인해 컨테이너가 반복적으로 종료되는 문제가 발생했습니다.

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

docker stats

API 서버가 메모리 제한인 512MB에 거의 도달한 상태였습니다.

서비스를 중단하지 않고 메모리 제한을 증가시켰습니다.

docker update --memory 2g api-server

변경 후 다시 사용량을 확인했습니다.

docker stats

메모리 부족 현상이 사라졌고 컨테이너도 더 이상 재시작되지 않았습니다.

Docker Update를 사용하면 긴급 상황에서도 컨테이너를 삭제하거나 다시 생성하지 않고 리소스를 조정할 수 있어 운영 중단 시간을 최소화할 수 있습니다.

Docker Update 사용 시 주의사항

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

첫 번째는 모든 설정을 변경할 수 있는 것은 아닙니다.

포트 매핑이나 볼륨과 같은 설정은 Docker Update로 변경할 수 없습니다.

두 번째는 너무 낮은 메모리 제한을 설정하면 컨테이너가 OOM(Out Of Memory)으로 종료될 수 있습니다.

현재 메모리 사용량을 충분히 확인한 후 변경하는 것이 좋습니다.

세 번째는 CPU 제한을 너무 낮게 설정하면 서비스 응답 속도가 크게 저하될 수 있습니다.

성능 테스트 후 적절한 값을 적용하는 것이 바람직합니다.

네 번째는 Docker Compose 환경에서는 Compose 파일에도 동일한 리소스 설정을 반영해야 합니다.

그렇지 않으면 컨테이너를 다시 생성할 때 변경 사항이 사라질 수 있습니다.

Best Practice

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

  • 변경 전에 docker stats로 현재 리소스 사용량을 확인합니다.
  • 메모리는 충분한 여유를 두고 설정합니다.
  • CPU 제한은 단계적으로 조정합니다.
  • 운영 환경에서는 변경 후 성능을 지속적으로 모니터링합니다.
  • Docker Inspect로 변경 내용을 확인합니다.
  • Docker Compose를 사용하는 경우 Compose 파일도 함께 수정합니다.

이러한 방법을 적용하면 안정적으로 리소스를 관리할 수 있습니다.

자주 묻는 질문

Docker Update를 사용하면 컨테이너가 재시작되나요?

아닙니다.

지원되는 리소스 항목은 컨테이너를 재시작하지 않고 변경할 수 있습니다.

메모리를 무제한으로 변경할 수 있나요?

가능하지만 서버의 실제 메모리 용량을 초과하면 시스템 전체에 영향을 줄 수 있으므로 권장되지 않습니다.

Docker Update로 포트도 변경할 수 있나요?

아닙니다.

포트 매핑은 컨테이너 생성 시 결정되며 Docker Update로 변경할 수 없습니다.

변경된 설정은 영구적으로 유지되나요?

컨테이너에는 적용되지만 Docker Compose나 Dockerfile에는 자동으로 반영되지 않습니다.

재배포 시 동일한 설정을 유지하려면 Compose 파일이나 실행 옵션도 함께 수정해야 합니다.

마무리

Docker Update는 실행 중인 컨테이너의 CPU, 메모리, 프로세스 제한 등을 서비스 중단 없이 변경할 수 있는 매우 유용한 관리 명령어입니다.

특히 운영 환경에서 갑작스러운 트래픽 증가나 리소스 부족 문제가 발생했을 때 빠르게 대응할 수 있으며, 컨테이너를 다시 생성하지 않아도 된다는 점이 큰 장점입니다.

Docker Stats, Docker Inspect와 함께 활용하면 리소스 사용량을 분석하고 최적의 성능을 유지하는 데 큰 도움이 됩니다.

댓글 남기기