반응형
Alpine Docker 파일의 장점 -----캐시 없음 대 rm/var/cache/apk/*
알파인 이미지를 사용하여 도커 파일을 만들 때 다음 중 하나를 사용하는 것을 자주 본 적이 있습니다.
apk add --no-cache
, 아니면apk add
뒤를 이어rm /var/cache/apk/*
진술.
사용 여부가 궁금합니다.--no-cache
flag를 사용하여 수동으로 패키지 캐시를 지울 필요가 없습니다.rm /var/cache/apk/*
. 어떤 스타일이 최선의 연습으로 여겨지는지도 알고 싶습니다.
그--no-cache
option을 사용하면 인덱스를 로컬로 캐시하지 않으므로 컨테이너를 작게 유지하는 데 유용합니다.
말 그대로 동등합니다.apk update
처음에 그리고rm -rf /var/cache/apk/*
마침내.
우리가 사용하는 몇가지 예시.--no-cache
옵션:
$ docker run -ti alpine:3.7
/ # apk add nginx
WARNING: Ignoring APKINDEX.70c88391.tar.gz: No such file or directory
WARNING: Ignoring APKINDEX.5022a8a2.tar.gz: No such file or directory
ERROR: unsatisfiable constraints:
nginx (missing):
required by: world[nginx]
/ #
/ # apk add --no-cache nginx
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
(1/2) Installing pcre (8.41-r1)
(2/2) Installing nginx (1.12.2-r3)
Executing nginx-1.12.2-r3.pre-install
Executing busybox-1.27.2-r7.trigger
OK: 6 MiB in 13 packages
/ #
/ # ls -la /var/cache/apk/
total 8
drwxr-xr-x 2 root root 4096 Jan 9 19:37 .
drwxr-xr-x 5 root root 4096 Mar 5 20:29 ..
우리가 사용하지 않는 또 다른 예.--no-cache
옵션:
$ docker run -ti alpine:3.7
/ # apk add nginx
WARNING: Ignoring APKINDEX.70c88391.tar.gz: No such file or directory
WARNING: Ignoring APKINDEX.5022a8a2.tar.gz: No such file or directory
ERROR: unsatisfiable constraints:
nginx (missing):
required by: world[nginx]
/ #
/ # apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
v3.7.0-107-g15dd6b8ab3 [http://dl-cdn.alpinelinux.org/alpine/v3.7/main]
v3.7.0-105-g4b8b158c40 [http://dl-cdn.alpinelinux.org/alpine/v3.7/community]
OK: 9048 distinct packages available
/ #
/ # apk add nginx
(1/2) Installing pcre (8.41-r1)
(2/2) Installing nginx (1.12.2-r3)
Executing nginx-1.12.2-r3.pre-install
Executing busybox-1.27.2-r7.trigger
OK: 6 MiB in 13 packages
/ #
/ # ls -la /var/cache/apk/
total 1204
drwxr-xr-x 2 root root 4096 Mar 5 20:31 .
drwxr-xr-x 6 root root 4096 Mar 5 20:31 ..
-rw-r--r-- 1 root root 451508 Mar 3 00:30 APKINDEX.5022a8a2.tar.gz
-rw-r--r-- 1 root root 768680 Mar 5 09:39 APKINDEX.70c88391.tar.gz
/ #
/ # rm -vrf /var/cache/apk/*
removed '/var/cache/apk/APKINDEX.5022a8a2.tar.gz'
removed '/var/cache/apk/APKINDEX.70c88391.tar.gz'
보시다시피 두 경우 모두 유효합니다.저 같은 경우는.--no-cache
옵션이 더 우아합니다.
이게 디자인 스타일인 것 같아요.캐시의 본질은 예를 들어 여러 컨테이너가 동일한 캐시된 파일 시스템을 네트워크에서 반복적으로 다운로드하지 않고 마운트할 수 있도록 재사용하는 것입니다.
apline wiki: https://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management#Local_Cache 을 볼 수 있습니다.
언급URL : https://stackoverflow.com/questions/49118579/alpine-dockerfile-advantages-of-no-cache-vs-rm-var-cache-apk
반응형
'code' 카테고리의 다른 글
데이터 정렬은 클라이언트에서 수행해야 합니까 아니면 서버에서 수행해야 합니까? (0) | 2023.09.10 |
---|---|
Kubernetes에서 컨테이너를 계속 가동하려면 어떻게 해야 합니까? (0) | 2023.09.10 |
plsql 오라클 DB 날짜에 대해 요일을 가져오는 방법 (0) | 2023.09.10 |
python을 통해 MySQL 데이터베이스에서 Base64 이미지 검색 (0) | 2023.09.10 |
결과를 데이터베이스에 저장하기 위해 asp.net 웹 API에서 웹 API를 소비하는 방법은 무엇입니까? (0) | 2023.09.10 |