이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 8653|회답: 6

Docker 로그가 디스크와 데이터 마이그레이션을 가득 채웁니다

[링크 복사]
게시됨 2022. 2. 7. 오전 10:21:43 | | | |
동료는 시스템이 테스트 환경에 로그인할 수 없다는 이유로 단호하게 모니터링을 확인했고, 서비스 포트가 열려 있음을 확인했으며, 서버에 로그인해 하드 디스크 사용량을 확인했더니 특정 디스크에 마운트된 디렉터리가 가득 차 있음을 확인했습니다. 아래 그림과 같습니다:



이 디스크는 도커 애플리케이션이 사용하는 100% 디스크이며, 처음에는 로그 파일 작성 불가 때문에 모듈이 외부 세계에 서비스를 제공하는 것을 막는 것으로 의심됩니다.

CentOS는 각 폴더 크기를 세고 큰 파일을 찾습니다
https://www.itsvse.com/thread-9542-1-1.html
큰 파일을 찾아서 /var/lib/docker/containers/ 하위 디렉터리에서 찾으세요어떤 json.log 파일이 30G를 차지하고 있습니다

세척, 컨테이너 로그 운영 (증상 치료)

용기가 즉시 정상적으로 제공될 수 있도록 하기 위해서입니다. 임시 해결책으로는 이러한 파일을 빠르게 정리하고 하드 디스크 공간을 확보하는 것이 스크립트입니다:

도커 컨테이너가 실행 중이라면, rm -rf로 로그를 삭제하면 df -h로 디스크 공간이 해제되지 않습니다. 그 이유는 리눅스나 유닉스 시스템에서는 rm -rf 또는 파일 관리자를 통해 파일을 삭제하면 파일 시스템의 디렉터리 구조에서 연결이 해제되기 때문입니다. 파일이 열려 있고 프로세스가 사용 중이라면, 프로세스는 여전히 파일을 읽을 수 있고 디스크 공간은 계속 차지됩니다. 올바른 포즈는 cat /dev/null > *-json.log이며, 물론 rm -rf로 제거한 후 도커를 재시작할 수도 있습니다.

말:빈 디스크의 디렉터리에 새 스크립트를 생성하세요. 그렇지 않으면 정상적으로 스크립트를 만들 수 없습니다


도커 컨테이너 로그 크기 설정 (근본 원인)

컨테이너 서비스의 최대 로그 크기를 설정하고, 컨테이너를 시작할 때 로그 크기를 설정하는 매개변수를 추가하세요. 예를 들어:

max-size=500m, 즉 용기의 통나무 크기 상한은 500M입니다.
max-file=3으로, 이는 컨테이너에 id+.json, id+1.json, id+2.json 세 개의 로그가 있음을 의미합니다.


도커가 새 디스크로 마이그레이션되었습니다

도커 관련 데이터는 시스템 디스크에 존재하며, 시스템 디스크 크기는 50G, 데이터 디스크는 100G 크기입니다. 기존 도커 데이터를 데이터 디스크로 옮기는 방법은 무엇인가요?

CentOS 시스템 yum 방법으로 설치된 도커의 기본 설치 디렉터리는 /var/lib/docker여야 합니다

Docker 버전 < v17.05.0

dockerd는 –graph=/var/lib/docker와 같은 매개변수 그래프를 통해 이미지와 컨테이너 저장 경로를 지정할 수 있기 때문에, 시작 매개변수를 지정하는 설정만 수정하면 됩니다.

Docker의 설정 파일은 대부분의 백그라운드 프로세스 매개변수를 설정할 수 있으며, 각 운영체제의 저장 위치는 Ubuntu에서는 /etc/default/docker, CentOS에서는 /etc/sysconfig/docker로 일관되지 않습니다.

Docker version >= v17.05.0

Docker가 이번 릴리스에서 공식적으로 그래프 기능을 폐지했기 때문에, 기기에 Docker 버전 >= v17.05.0이 설치되어 있다면, /etc/default/docker 구성 파일에서 그래프 매개변수를 지정하여 Docker의 기본 설치(저장소) 디렉터리를 수정할 수 없습니다.

새로운 버전의 Docker가 설치(저장소) 디렉터리를 수정하는 다른 방법도 있습니다: 데이터루트 매개변수의 값을 지정하기 위해 (새로운) /etc/docker/daemon.json를 수정하는 것입니다.

Docker daemon directory configuration:하이퍼링크 로그인이 보입니다.

마이그레이션 준비: 모든 컨테이너 애플리케이션을 중지하고 도커 서비스를 중지하세요 (systemctl stop docker).


Docker는 컨테이너 재시작 설정과 대량 정지 컨테이너를 살펴봅니다
https://www.itsvse.com/thread-10130-1-1.html
다음 명령어로 /home/software에 새 디렉터리를 생성하세요:

/var/lib/docker 디렉터리를 /home/software/docker 디렉터리로 마이그레이션하세요(복사한 후 /var/lib/docker 디렉터리 파일이 정상 상태일 때 삭제하는 것이 권장됩니다). 명령어는 다음과 같습니다:

복사할 때-a 매개변수를 꼭 추가하세요. 그렇지 않으면 일부 컨테이너가 제대로 작동하지 않을 수 있습니다!!!!!

다음 명령어로 현재 디렉터리의 모든 소프트 연결과 파일 포인트를 확인하세요:


다음 명령어로 /etc/docker/daemon.json 파일을 수정하세요:



저장 후 다음 명령어로 도커 서비스를 시작합니다:

용기를 시작하고, 모든 테스트가 정상적으로 진행되며, 마침내,/var/lib/docker 폴더를 삭제하세요



(끝)




이전의:리눅스 시스템 켜기와 종료 시간을 확인하세요
다음:Spring Cloud Gateway에 내장된 필터 팩토리
게시됨 2022. 2. 13. 오후 4:36:29 |
배우는 법을 배우세요。。。。。
 집주인| 게시됨 2022. 2. 24. 오전 9:38:26 |
도커: none 이미지 삭제 방법
https://www.itsvse.com/thread-10112-1-1.html
 집주인| 게시됨 2022. 2. 24. 오후 1:21:48 |
목록
묘사
컨테이너 ID 및 이름컨테이너의 ID와 이름
CPU % 및 MEM %컨테이너가 사용하는 호스트 CPU와 메모리 비율
메모리 사용량 / 한도컨테이너가 사용하는 총 메모리와 허용된 총 메모리 양
NET I/O컨테이너가 네트워크 인터페이스를 통해 주고받는 데이터의 양
블록 입출력컨테이너가 호스트의 블록 장치에서 읽고 쓰는 데이터의 양
PID컨테이너가 생성하는 프로세스 또는 스레드의 수입니다


 집주인| 게시됨 2022. 3. 25. 오후 2:45:13 |
/var/lib/docker/containers/xxxx/config.v2.json 파일의 이름 값을 쿼리하면 해당 컨테이너 애플리케이션을 찾을 수 있습니다.



게시됨 2022. 12. 7. 오후 2:17:31 |
Docker 로그가 디스크와 데이터 마이그레이션을 가득 채웁니다
 집주인| 게시됨 2023. 4. 17. 오전 9:59:49 |
도커는 다음 명령어로 컨테이너의 로그를 개별적으로 비웁니다:

면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com