해결책: 1. docker 서비스를 중지한 후 "rsync -avz /var/lib/docker 대용량 디스크 디렉터리 /docker/lib/"를 사용하여 docker를 대용량 디스크로 마이그레이션합니다. 2. "/etc/docker"를 편집합니다. / daemon.json" 지정된 매개변수를 추가하여 docker 디렉터리 마이그레이션을 바인딩합니다. 3. docker 서비스를 다시 로드하고 다시 시작합니다.
이 튜토리얼의 운영 환경: linux7.3 시스템, docker 버전 19.03, Dell G3 컴퓨터.
우리는 도커를 사용하다 보면 새로운 이미지와 새로운 컨테이너를 생성하고, 그 새로운 컨테이너에 각종 패키지를 설치하는 경우가 많습니다. 이런 것들은 가상이 아니고 실제로 우리 안에 디스크에 존재합니다. , 기본값은 /var/lib/docker에 있습니다. 이 디렉터리는 시스템 디스크에 속하며 시스템 디스크의 공간은 크지 않은 경우가 많습니다. 이로 인해 시간이 지남에 따라 docker가 점점 더 커지게 됩니다. system 디스크 공간이 꽉 찼으므로 이번에는 docker 저장소 디렉터리를 더 큰 디스크로 마이그레이션하여 시스템 디스크 공간을 확보해야 합니다.
서버의 모든 디스크 사용량 확인:
df -h
빨간색 상자가 시스템 디스크의 크기임을 알 수 있습니다. 전체 크기는 188G(다른 디스크보다 훨씬 작음)입니다. 블로거님이 이렇게 하셨습니다. 마이그레이션이 완료되어서 공간이 많이 남았습니다.
Docker 이미지 및 컨테이너 저장 디렉터리의 공간 크기를 확인하세요
du -sh /var/lib/docker/
Docker 서비스를 중지하세요
systemctl stop docker
여기서 이상한 점은 내 systemctl이 계속 실패하고 오류의 원인을 찾을 수 없다는 것입니다. 다음:
Failed to execute operation: Launch helper exited with unknown return code 1
이유를 알고 있어요. 친구들이 문제 해결 방법을 가르쳐 줄 수 있어요. 위 명령을 시도했는데 실패하면 다음 명령을 사용하십시오.
service docker stop
해결책:
1 docker를 대용량 디스크로 마이그레이션
# 首先创建目录 mkdir -p 大磁盘目录/docker/lib/ # 迁移 rsync -avz /var/lib/docker 大磁盘目录/docker/lib/
2. daemon.json, docker 디렉터리 마이그레이션 바인딩을 위한 매개변수 추가
빨간색 상자는 추가된 매개변수입니다
3. docker 서비스를 다시 로드하고 다시 시작합니다
systemctl daemon-reload && systemctl restart docker
하지만 여전히 systemctl을 실행하지 못하여 다음을 사용했습니다. docker를 다시 시작하려면 다음 명령을 사용하세요.
service docker restart
docker가 새 디렉터리에 바인딩되어 있는지 확인하세요.
docker info
Docker 루트 디렉터리가 /var/lib/docker에서 지정한 디렉터리로 변경되면 마이그레이션이 성공한 것입니다.
이전 docker 디렉터리 삭제
rm -rf /var/lib/docker
권장 학습: "docker 비디오 튜토리얼"
위 내용은 도커 저장 공간이 부족한 경우 대처 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!