Dockerfile.1
여러 실행 RUN
:
FROM busybox
RUN echo This is the A > a
RUN echo This is the B > b
RUN echo This is the C > c
Dockerfile.2
그들과 합류 :
FROM busybox
RUN echo This is the A > a &&\
echo This is the B > b &&\
echo This is the C > c
각각 RUN
은 레이어를 생성하므로 항상 적은 레이어가 더 좋을 것이라고 생각했습니다 Dockerfile.2
.
이것은 RUN
이전에 추가 된 것을 제거 할 때 RUN
(즉 yum install nano && yum clean all
) 분명한 것이지만, 모든 RUN
것이 무언가를 추가하는 경우 고려해야 할 몇 가지 사항이 있습니다.
레이어는 이전 레이어 위에 diff를 추가하기 만하므로, 나중에 레이어가 이전 레이어에 추가 된 것을 제거하지 않으면 두 방법 사이에 디스크 공간 절약 이점이 많지 않아야합니다 ...
Docker Hub에서 레이어를 병렬로
Dockerfile.1
가져 오기 때문에 약간 더 크더라도 이론적으로 다운로드 속도가 더 빠릅니다.4 번째 문장 (예 :)을 추가
echo This is the D > d
하고 로컬로 재 구축Dockerfile.1
하면 캐시 덕분에 더 빨리 빌드되지만Dockerfile.2
4 개의 명령을 모두 다시 실행해야합니다.
그렇다면 질문 : Dockerfile을 수행하는 더 좋은 방법은 무엇입니까?