>
다른 곳에서는 도커 이미지가 최대 42 개의 레이어로만 구성 될 수 있다는 정보를 발견했습니다. 이것은 사용 된 AUFS 파일 시스템의 한계 인 것 같습니다.

이 제한이 존재하는 이유를 아는 사람이 있거나 이것을 설명하는 문서가있는 사람이 있습니까?

  • 답변 # 1

    이것은 주로 AUFS ( sfjro/aufs4-linux )가 부과 한 것으로 보입니다. ).
    PR 50 "중심에서 42 개 이상의 레이어 금지"를 참조하십시오.

    와이즈 비즈 와이즈 비즈      

    우리는 아직 42 개 이상의 레이어를 허용하지 않습니다. Devicemapper는 실제로 그것을 지원하지만 50 레이어 이미지를 레지스트리로 푸시하면 대부분의 사람들이 사용할 수 없습니다. AUFS에 대해 42 개 이상의 계층을 지원하면이 기능을 사용할 수 있습니다.

    PR 66은 그 한계를 없애기로되어있었습니다

    이 스레드는 다음을보고했습니다.

    와이즈 비즈

  • 답변 # 2

    Docker BP 설명서에서 :

    와이즈 비즈 와이즈 비즈  사용하는 레이어 수를 최소화합니다. 사용하는 레이어 수에 대해 전략적이고 신중해야합니다.

    또한 너무 많은 레이어를 피하는 방법에 대한 조언을 제공합니다 :

    와이즈 비즈 <시간>

    TL;DR :레이어 수를 최소화하는 이점은 작은 파일의 수를 최소화하는 것이 아니라 큰 파일이 적다는 이점과 비슷할 수 있습니다. 와이즈 비즈  또한 더 빠릅니다 (148B의 2048 파일 또는 2MB의 파일 하나 다운로드). 레이어 수가 적 으면 이미지의 복잡성이 줄어들어 유지 관리가 쉬워집니다.

    와이즈 비즈  한도. 글쎄 ... 나는 그들이 숫자를 생각해 내야한다고 생각한다. 그리고 그들은이 특정한 것을 선택한다;)

  • 답변 # 3

    그러한 어려운 한계가 없다는 것을 의심하기 시작했다. >

    다음 파이썬 스크립트를 생성하고 이름을 "makeDockerfile.py"

    그런 다음 와이즈 비즈 200 개 이상의 레이어로 작업 컨테이너를 실행하고 있음을 알 수 있습니다.

    (이것은 리눅스에서 리눅스 컨테이너로 테스트되었다)

    이것은이 많은 층들이 반드시 지원된다는 것을 의미하지는 않으며, 경우에 따라 가능하다는 것을 의미합니다.

    실제로 컨테이너가 42 개 미만의 레이어로 실패하는 것을 보았으며 임의의 레이어를 제거하면 문제가 해결 된 것으로 보입니다. (https://github.com/docker/for-win/issues/676#issuecomment-462991673 참조)

    수정:

    Hey, out of curiosity, what's the detailed rationale behind this?
    People have been asking how to bypass the 42 layers limit, and we've always told them "wait for device mapper!" so... what should we tell them now?

    Docker의 관리자 인 이에 대해 다음과 같이 말합니다.

    The 42 limit comes from the aufs code itself.
    My guess is that it's because of stack depth: if you stack these kernel data structures too many levels deep, you might trigger an overflow somewhere. The hardcoded limit is probably a pragmatic way to avoid that.

    (https://github.com/docker/docker.github.io/issues/8230 참조)

    Minimize the number of layers

    You need to find the balance between readability (and thus long-term maintainability) of the

  • 이전 java - collectionssort ()가 compareTo 재정의로 정렬되지 않습니다
  • 다음 ios : 어두운 모드를 선택한 후보기를 다시로드 할 수 있습니까?