250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- ec2
- 클러스터
- Kafka
- 설정
- java
- config
- vue
- Zeppelin
- 젠킨스
- redash
- login
- 간단
- 자바
- 로그인
- 머신러닝
- hive
- spring
- 자동
- Cluster
- gradle
- EMR
- Mac
- aws
- Jenkins
- 레디스
- Redis
- 예제
- Docker
- fastcampus
- SpringBoot
Archives
- Today
- Total
코알못
[Docker] 도커 이미지 경량화 전략 / 디버깅 본문
728x90
이미지 경량화를 하게 되면 pull, push, 컨테이너 실행 속도가 빨라지며
당연히 불필요한것을 삭제하여 디스크 공간을 적게 차지하는것이 좋기 때문에 경량화를 진행 하는 방법을 알아본다!
1) '--no-cache' 옵션을 사용하여 필요하지 않은 캐싱은 하지 않는다.
RUN ... --no-cache
2) '&&\' 를 뒤에 붙여 관련 있는 명령어는 하나의 레이어로 묶어서 처리
- 'case 1' 의 경우 레이어가 두개 생성되며, 두번째 레이어에서만 삭제 되며 첫번째 레이어에 영향 주지 않는다.
- 'case 2' 의 경우 레이어 하나가 생성되므로 파일이 삭제되어 'case 1' 보다 적은 공간을 차지한다.
[case 1]
RUN wget https://..test.json
RUN rm -rf test.json
[case 2]
RUN wget https://..test.json &&\
rm -rf test.json
3) 'slim', 'alpine' 가 붙은 경량 베이스 이미지 선택한다.
4) 멀티 스테이지 파이프라인
빌드 이미지, 실행 이미지를 분리시켜 실행 이미지에서는 환경 구성을 따로 하지 않고 필요한 파일만 복사하여 사용하는 방식
필요한 파일만 복사하여 사용하니 환경 구성에 필요했던 불필요한 파일이 공간 차지할 필요 없어 경량화에 용이
FROM .. AS builder
..
..
빌드 실행
FROM ..
COPY --from=builder /usr/src/app/test ./test
이제 디버깅 하는 방법을 알아보자!
아래와 같이 system events 명령어를 이용하면 이벤트 단위로 상세 로그를 볼 수 있다.
$ docker system events
도커에서 사용하는 디스크 공간을 보기 위해서 아래와 같은 명령어로 확인 가능하다.
$ docker system df
더욱 상세 하게 보려면 뒤에 -vf 옵션을 붙이면 된다.
$ docker system df -vf
불필요한 리소스를 한번에 삭제 하려면 아래와 같은 명령어로 가능하다. (어떤 데이터를 삭제 하는지는 경고창이 나오니 확인 하여 삭제하면 된다.)
$ docker system prune
컨테이너 별로 자원 사용량을 확인 하려면 아래 명령어로 확인 할 수 있다. TOP 명령어와 비슷하게 나온다.
$ docker stats
끝!
728x90
'ETC' 카테고리의 다른 글
[Docker] Docker 빌드를 위한 Jenkins 활용 - 준비 (0) | 2023.03.13 |
---|---|
[Docker] Docker Compose 란? (0) | 2022.12.09 |
[Docker] 도커 허브를 통한 이미지 관리 (0) | 2022.11.25 |
[Docker] 이미지 생성/불러오기 (0) | 2022.11.25 |
[코테] 순차/이진 탐색과 그래프 이해 (0) | 2022.10.27 |
Comments