반응형
1. 수명이 짧은 컨테이너 만들기
수명이 짧다는 것은 컨테이너가 멈추거나 삭제되고 다시 빌드되어 컨테이너가 실행되는 이러한 과정들이 짧아야 한다는 것이다.
- 즉, Dockerfile의 용량이 작을 수록 좋다고 할 수 있겠으며,
- 불필요한 레이어를 넣어 복잡한 구조로 Dockerfile을 만드는 것 보단 필요한 레이어만 넣어주어 단순한 구조로 Dockerfile을 만드는 것이 좋다고 할 수 있다.
2. Build context에서 Dockerfile을 Build해준다.
Build context란 Dockerfile을 Build하기 위한 별도 경로라는 얘기인데, 결국 해당 경로에 불필요한 파일은 두지 않는 것이
좋다는 뜻이다.
Dockerfile에 ADD 또는 COPY 명령어를 넣지 않거나, 대상을 확실하게 지정해주면 상관 없겠지만 혹시모를 실수를 사전에 방지하고자 하기 위함이다.
또는 .dockerignore파일을 생성하여 실수가 생길 수 있는 변수를 사전에 차단할 수 있다.
3. STDIN을 활용한 Dockerfile pipe 활용하기
1회성빌드가 필요한 경우에는 Standard Input을 활용하면 좋다는 것이다.
[예시]
echo -e 'FROM busybox\nRUN echo "hello world"' | docker build -
4. .dockerignore파일을 활용하기
2번에서 설명했던 것 처럼 .dockerignore파일을 활용하여 build context 또는 다른경로에 build과정에서 불필요한 파일 및 디렉토리들을 사전에 제외시키고 빌드할 수 있도록 한다.
### Docker 빌드 컨텍스트에서 제외할 파일 및 디렉토리 목록
# 특정 파일
debug.log
# 특정 확장자를 가진 파일
*.tmp
*.bak
# 특정 디렉토리
temp/
# 특정 디렉토리 및 하위 디렉토리 모두
logs/**
# 특정 디렉토리와 그 하위의 특정 파일
config/config.txt
- Dockerfile과 같은 경로에 있으면 된다.
5. 불필요한 패키지 설치하지 않기
image내에 불필요한 패키지는 설치하지 않는 것이 좋다라는 것이다.
반드시 사용해야만 하는 패키지는 설치를 해야겠지만, 굳이 필요 없는 패키지는 설치하지 않고 최대한 경량화하여 build하도록 한다.
반응형
'Docker' 카테고리의 다른 글
Dockerfile Best Practice #2 (0) | 2024.03.18 |
---|---|
Harbor Private Registry 설치 및 설정 (0) | 2023.07.20 |