2017-03-15 18 views
1

서비스/응용 프로그램의 로그를 별도의 폴더에 저장하고 자주 삭제하는 쿼리가있었습니다.Docker가 응용 프로그램 (서비스) 로그를 폴더에 저장하고 적시에 삭제합니다.

Webmin 서버에서 Docker를 사용하여 Spring 부팅 응용 프로그램을 배포합니다. 우리는

docker build -t application-service:latest ./application-service 
docker run -p 1070:1070 -m 128m -d application-service 

나는의 메모리 할당은 "-m"을 사용, 아래

우리가 구축하고 서비스를 실행하는 데 사용하는 샘플 명령입니다 Webmin은 서버의 공간 혼란을 방지하기 위해 위를 달성하고 싶습니다 서비스 그리고 나는 궁금하다. 다른 경로에있는 애플리케이션의 로그를 저장하는 열쇠가있다. 특정 위치의 로그를 지우기 위해 도커 또는 웹 서버에서 할 수있는 다른 모든 것들이있다.

미리 감사드립니다. !!! 제안을 기다리고 있습니다 !!!

답변

0

Docker에는 컨테이너 로그를 처리하는 여러 가지 방법이 있습니다. 그들에 관해서는 here을 읽을 수 있습니다.

docker run을 호출하고 드라이버 및 구성을 지정하는 --log-driver 플래그를 지정하면 필요한 로깅 드라이버를 제공하면됩니다.

하나 더 가능한 해결책은 마운트 된 볼륨을 사용하고 컨테이너 내에서 실행중인 서비스를 구성하여 마운트해야하는 폴더에 로그를 저장하는 것입니다. 이 경우 호스트 시스템의 로그에 액세스 할 수 있습니다.

+0

안녕하세요 @ Stanislav, 좋은 정보입니다. json 드라이버의 max-file을 확인할 수 있습니다. 도커 명령을 제거하는 동안 제거해서는 안되는 별도의 로그를 저장할 수있는 옵션이 필요합니다. –

+0

@ChellaKumaran 저는 드라이버가 저장된 로그가 컨테이너 삭제시 사라지지 않고 드라이버가 선택되지 않았 음을 확신합니다. 최소한'syslog'는 로그가있는 별도의 파일을 만듭니다.이 파일은 컨테이너를 제거한 후에도 사용할 수 있습니다. – Stanislav

+0

그러나 syslog 드라이버는 로그를 올바르게 내보내려면 별도의 컴퓨터 IP 주소가 필요합니다. 다른 폴더에있는 서버 내의 로그를 내 보내야합니다. 그것은 실현 가능합니까? –