2

나는 게임 응용 프로그램을 가지고 있으며 docker 1.10.3에서 실행 중입니다. 우리는로드 테스트를 수행하기 위해 초당 1000 회의 요청으로이 애플리케이션을 타게됩니다. 응용 프로그램이 정상적으로 작동합니다. Docker가 소비하는 중요한 HD 메모리가 있습니다. 3 일 동안 도커는 fron 2.2gb에서 39gb를 소비했습니다. 이것은 우리에게 짐을 겁니다.Docker가 더 많은 HD 메모리를 사용합니다.

도커 정보 및 소비 공간은 HD 메모리를 consumen하지 고정 표시기를 configre했다 enter image description here

있습니까 을 강조? 도움이 될 것입니다.

+1

이 공간을 모두 차지하는 파일을 알고 계십니까? 내 추측은 요청 수가 증가하는 로그 파일이 될 것입니다. – vdebergue

+0

내부 도커입니다. 응용 프로그램과 아무 관련이 없습니다. 나는 이것을 없애기 위해 Docket에 기본 구성이 있는지 알고 싶었습니다. – Prakash

답변

4

Docker는 응용 프로그램의 표준 출력 (STDOUT)을 캡처하여 기본적으로 내부 로그 파일에 저장합니다. 이 파일은 /var/lib/docker/containers/$CONTAINER_ID/$CONTAINER_ID-json.log에서 찾을 수 있습니다. 이 파일은 기본적으로 회전되지 않으며 응용 프로그램이 STDOUT에 자세히 인쇄하면 커질 수 있습니다.

두 가지 가능한 솔루션 :

  1. 구성 로그 회전 도커 로그 파일을 위해. 나는 다음과 같은 내용으로 파일 /etc/logrotate.d/docker-container을 작성하여 부두 노동자에 대한 로그 회전을 설정하는 방법에 대해 설명하는 good article here을 발견했습니다

    /var/lib/docker/containers/*/*.log { 
        rotate 7 
        daily 
        compress 
        size=1M 
        missingok 
        delaycompress 
        copytruncate 
    } 
    

    당신은 옵션으로 주위를 재생할 수 있습니다. 그들은 모두 logrotate's man page에 문서화되어 있습니다. 컨테이너를 만들 때 --log-driver 옵션을 지정하여 컨테이너에 대한

  2. 를 사용하여 다른 로깅 :

    $ docker run --log-driver=syslog your_image 
    

    가능한 드라이버는 the official documentation에 설명되어 있습니다. 예를 들어 --log-driver=syslog을 사용하여 시스템의 syslog 데몬을 사용하거나 다양한 클라우드 서비스를 대상으로하거나 --log-driver=none을 사용하여 로깅을 완전히 비활성화 할 수 있습니다.

+0

이러한 옵션을 사용해 주셔서 감사합니다. – Prakash

관련 문제