>  기사  >  운영 및 유지보수  >  Docker 로그 크기 제한 및 스토리지 디렉터리 전환

Docker 로그 크기 제한 및 스토리지 디렉터리 전환

WBOY
WBOY앞으로
2023-06-09 19:18:421261검색

Docker 로그 크기 제한 및 스토리지 디렉터리 전환

제품의 다양한 환경에서 CentOS 가상머신이 많이 사용되는데, 기본적으로 루트 디렉토리 공간은 50G입니다. 사용시간이 길어질수록 공간이 부족해집니다.

우리가 항상 채택해 온 방법은 쓸모없는 이미지와 Docker 로그를 삭제하여 서버를 항상 사용할 수 있도록 하는 것입니다. 청소가 쓸모없어지고 나서야 다른 방법을 찾아볼까 하는 생각이 들었습니다.

절박한 상황에 처하지 않을 때 우리는 익숙한 방법과 도구에 습관적으로 의존하게 됩니다. 이는 효율적이지 않을 수도 있지만 문제를 해결할 수는 없습니다. 사람들이 편안하게 머물게 만들 것입니다.

위에 언급된 다른 방법은 실제로 매우 간단하며 약간의 연구를 통해 얻을 수 있습니다. Docker 로그 크기를 제한하고 Docker 데이터 디렉터리를 외부 저장소로 전환하는 것입니다.

로그 제한

1. Docker 구성 파일 /etc/docker/daemon.json을 편집합니다. 파일이 없으면 새 파일을 만듭니다.

sudo vi /etc/docker/daemon.json

2. 로그 파일 크기는 100MB이며 마지막 5개의 로그 파일이 보관됩니다. 여기서는 max-size 및 max-file 매개변수를 사용하여 로그의 크기와 수를 제어합니다.

{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "5"
}
}
  • max-size: 단일 로그 파일의 최대 크기
  • max-file: 최대 여러 로그 유지 파일, 단일 파일의 경우 로그 크기가 설정을 초과하면 새 로그 파일이 생성됩니다.

3. 구성을 적용하려면 Docker 서비스를 다시 시작하세요.

sudo systemctl restart docker

데이터 디렉터리 전환

CentOS에서 Docker의 기본 디렉터리는 /var/lib/docker입니다. Docker 구성 파일. Dcoker 데이터 디렉터리를 설정하는 구체적인 단계는 다음과 같습니다.

1. /etc/docker/daemon.json 구성 파일에 data-root 옵션을 추가합니다.

{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "5"
}
"data-root": "/home/docker"
}
  • /home/docker 디렉토리가 외부 저장소이거나 상대적으로 큰 공간 롤을 가지고 있습니다.

2. 도커를 비활성화합니다.

sudo systemctl stop docker

3 Docker 기본 디렉터리의 내용을 새 디렉터리에 복사합니다.

sudo rsync -aqxP /var/lib/docker/ /home/docker/
  • 파일 및 디렉터리의 원격 동기화를 위한 도구
  • 는 rsync에게 아카이브 모드를 의미하며 파일과 디렉터리를 동기화하도록 지시합니다. , q 는 자동 모드(출력이 표시되지 않음)를 의미하고, x 는 파일 시스템 경계를 넘지 않음을 의미합니다. P .

4. 기본 디렉터리 이름을 bak:

mv /var/lib/docker /var/lib/docker.bak

로 수정합니다. 이 방법의 장점은 원본 데이터를 백업하고 작업이 안정된 후에 삭제할 수 있다는 것입니다. 또한 원본 디렉터리가 손상되는 것을 방지합니다. 구성이 적용되지 않아 읽습니다.

5. Dcoker 활성화:

sudo systemctl start docker

위의 세 번째 단계에서는 rsync 명령을 사용하여 콘텐츠를 동기화했습니다. 이 명령의 의미는 rsync 도구를 사용하여 /var/lib/docker/에 있는 모든 파일을 동기화한다는 것입니다. 파일과 하위 디렉터리는 다른 로컬 컴퓨터의 /home/docker/에 동기화됩니다.

이전에는 파일이나 디렉터리를 조작하는 데 주로 cp와 scp를 사용했다는 것을 이번에 알아봤습니다. rsync 명령 도구를 사용하여 계속해서 cp와 scp를 배워 보겠습니다.

rsync와 cp와 rsync의 차이점

  • 복사 방법: cp와 scp는 전체 파일을 대상 위치에 복사하는 반면, rsync는 업데이트해야 할 부분만 복사하므로 속도와 효율성을 향상시킬 수 있습니다. 사자.
  • 지원 가능성: rsync는 파일 동기화, 파일 백업, 파일 복구 등과 같은 더 많은 작업을 지원합니다. cp와 scp는 파일 복사만 지원합니다.
  • 전송 방법: cp는 로컬 파일 시스템 간에 파일을 복사하고 scp는 원격 작업을 수행하며 rsync는 로컬 또는 원격 시스템 간에 파일을 동기화할 수 있습니다.
  • 효율성: rsync는 업데이트해야 하는 파일만 복사하기 때문에 더 효율적입니다.
  • 옵션: rsync는 압축, 부분 전송, 파일 시스템 간 동기화 등과 같은 더 많은 옵션과 구성 옵션을 제공합니다.

간단히 말하면 rsync는 더욱 강력하고 효율적인 파일 복사 및 동기화 도구입니다. 로컬 또는 원격 컴퓨터 간에 파일 동기화, 백업 및 복구 작업을 수행해야 하는 경우 rsync를 사용하는 것이 좋습니다. 그리고 cp와 scp는 간단한 로컬 파일 복사와 원격 파일 전송에 적합합니다.

요약

이번 로그 제한 및 디렉터리 전환 연구를 통해 두 가지 생각이 들었습니다.

1. 많은 경우 더 나은 방법은 앞으로 나아갈 의지가 있는지 여부에 달려 있습니다. 즉, 어떤 것에도 안주하지 말고, '쓸데없는 건 아니다'라는 마음가짐을 갖지 말라는 것입니다. 제품을 만드는 것도, 기술을 배우는 것도 마찬가지입니다.

2. 퇴근 후 배우는 많은 기술은 지속적으로 문제를 해결함으로써 학습됩니다. 이는 점차적으로 경험을 쌓게 되지만, 특정 분야에 대해 매우 친숙하다고 느끼더라도 책을 읽고 읽으면 필요하다고 생각합니다. 체계적으로 공부하면 많은 사각지대를 확실히 없앨 수 있을 것입니다.

위 내용은 Docker 로그 크기 제한 및 스토리지 디렉터리 전환의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제