Docker 컨테이너의 'mkdir(): No space left on device' 관련 문제. 그래도 다른 문제가 있을 수 있나요?

Docker 컨테이너의 'mkdir(): No space left on device' 관련 문제. 그래도 다른 문제가 있을 수 있나요?

몇 년 동안 잘 작동해 온 도커 컨테이너(NGINX/PHP, MySQL 등)가 있습니다. 그러나 최근 NGINX/PHP 컨테이너의 Laravel에서 PHP 스크립트를 실행할 때 이 오류가 표시되기 시작했습니다.

mkdir(): No space left on device

내가 알 수 있는 바에 따르면 웹 앱이 Laravel의 Illuminate\Support\Facades\Mail을 사용하여 로그인 OTP/2FA 단계 중에 이메일을 보내려고 할 때 발생/생성되는 것처럼 보입니다. 나는 컨테이너 내의 일종의 캐시 폴더/파일 또는 기타 디렉토리에 쓰려는 시도가 있다고 가정합니다. 이 디렉토리는 어떻게든 가득 차 있거나 해당 위치에 쓸 수 있는 권한이 없습니다.

대부분의 nginx 캐시 파일은 컨테이너의 /var/cache/nginx에 있는 것 같습니다.

그러나 최근에는 코드가 변경되지 않았습니다.

컨테이너에서 사용 가능한 공간을 확인하거나 Docker 컨테이너에 할당된 크기를 설정하는 방법이 있습니까?

답변1

컨테이너가 기본적으로 액세스할 수 있는 디스크 양에는 제한이 없습니다. 사용 가능한 옵션이 있지만 일부 스토리지 드라이버에만 제한됩니다.스토리지 드라이버 옵션

Docker 컨테이너가 실행되는 호스트 장치에 더 이상 공간이 남아 있지 않을 가능성이 높습니다. 실행 중인지 확인할 수 있습니다.

# df -h

또 다른 이유는 더 이상 사용 가능한 inode가 없기 때문일 수 있습니다(파일 시스템을 채우지 않고도 발생할 수 있음). 실행 중인지 확인할 수 있습니다.

df -i
# or
tune2fs -l /dev/<your disk device>

관련 정보