보통 이런 에러는 도커 이미지 용량이 가득 찼거나, file descriptors 값이 낮아서 생기는 문제이다
만약 도커 이미지 용량이 가득 찼다면? 디스크 공간 확보를 위해 그냥 안 쓰는 것들을 삭제해주면 된다!
.
.
.
하지만 file descriptors값이 낮다면? 앞으로 편하게 값을 영구적으로 늘려주자
오늘은 이 file descriptors 값을 영구적으로 늘리는 방법에 대해 다뤄보려 한다
우선, 아래 명령어로 file descriptors (-n) 값 확인
ulimit -a
만약 256으로 설정되어 있다면 65536으로 변경해주자!
이게 중요한 이유
- Docker는 이미지 레이어를 처리할 때 동시에 많은 파일 핸들을 열어야 하는 경우가 있음
- 256은 Docker 작업에서 특히 대형 이미지나 복잡한 레이어를 다룰 때 부족할 수 있다!
- 따라서 이게 failed to register layer: max depth exceeded 오류와 연결될 가능성이 있다~.~
그래서 많은 개발자들이 이 기본 설정 값을 늘리는 경우가 많다
(늘려도 안전하니 안심하고 늘려도 된다 ㅎㅎ)
[MacOS Catalina 버전 미만 해결법]
sysctl.conf 파일 열기
sudo launchctl limit maxfiles 65536 65536
파일에 아래 값들을 설정!
kern.maxfiles=65536
kern.maxfilesperproc=65536
이렇게 하면 영구적으로 설정이 된다
[MacOS Catalina 버전 이상 해결법]
똑같이 file descriptors 값이 낮아서 생기는 문제이다! 값을 65536으로 늘려주자
하지만 맥북 최신 OS 버전에서는 더 이상 /etc/launchd.conf 방식 지원을 중단했기 때문에 더 이상 적용되지 않는다
그래서 우리는 plist 파일을 사용해서 설정해야 한다
1. plist 파일 생성
sudo vim /Library/LaunchDaemons/limit.maxfiles.plist
2. 아래 내용 붙여넣기
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>limit.maxfiles</string>
<key>ProgramArguments</key>
<array>
<string>launchctl</string>
<string>limit</string>
<string>maxfiles</string>
<string>65536</string>
<string>65536</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
3. 권한 설정
sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
sudo chmod 644 /Library/LaunchDaemons/limit.maxfiles.plist
이렇게 하면 영구적으로 설정이 된다
재부팅 후에 한번 아래 커맨드로 확인해보자!
ulimit -n
#SK, #SKALA, #SKALA1기
'클라우드 > 도커' 카테고리의 다른 글
[도커] harbor: 오픈소스 컨테이너 이미지 레지스트리(Docker Hub의 대안) (0) | 2025.04.29 |
---|---|
[도커] 기본 명령어 모음 (0) | 2025.03.07 |
[도커] 도커(docker)란? (0) | 2024.06.25 |