code

Alpine Docker 파일의 장점 -----캐시 없음 대 rm/var/cache/apk/*

starcafe 2023. 9. 10. 12:26
반응형

Alpine Docker 파일의 장점 -----캐시 없음 대 rm/var/cache/apk/*

알파인 이미지를 사용하여 도커 파일을 만들 때 다음 중 하나를 사용하는 것을 자주 본 적이 있습니다.

  • apk add --no-cache, 아니면
  • apk add뒤를 이어rm /var/cache/apk/*진술.

사용 여부가 궁금합니다.--no-cacheflag를 사용하여 수동으로 패키지 캐시를 지울 필요가 없습니다.rm /var/cache/apk/*. 어떤 스타일이 최선의 연습으로 여겨지는지도 알고 싶습니다.

--no-cacheoption을 사용하면 인덱스를 로컬로 캐시하지 않으므로 컨테이너를 작게 유지하는 데 유용합니다.

말 그대로 동등합니다.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

반응형