\--no-cache Vs的Alpine Dockerfile的优势rm / var / cache / apk / *

【字号: 日期:2024-04-01浏览:34作者:雯心
(adsbygoogle = window.adsbygoogle || []).push({}); 如何解决\--no-cache Vs的Alpine Dockerfile的优势rm / var / cache / apk / *?

该--no-cache选项允许不在本地缓存索引,这对于保持容器较小非常有用。

从字面上看,它apk update在开头和rm -rf /var/cache/apk/*结尾相等。

我们使用--no-cacheoption的一些示例:

$ docker run -ti alpine:3.7/ # apk add NginxWARNING: Ignoring APKINDEX.70c88391.tar.gz: No such file or directoryWARNING: Ignoring APKINDEX.5022a8a2.tar.gz: No such file or directoryERROR: unsatisfiable constraints: Nginx (missing): required by: world[Nginx]/ # / # apk add --no-cache Nginxfetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gzfetch 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-installExecuting busyBox-1.27.2-r7.triggerOK: 6 MiB in 13 packages/ # / # ls -la /var/cache/apk/total 8drwxr-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 NginxWARNING: Ignoring APKINDEX.70c88391.tar.gz: No such file or directoryWARNING: Ignoring APKINDEX.5022a8a2.tar.gz: No such file or directoryERROR: unsatisfiable constraints: Nginx (missing): required by: world[Nginx]/ # / # apk updatefetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gzfetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gzv3.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-installExecuting busyBox-1.27.2-r7.triggerOK: 6 MiB in 13 packages/ # / # ls -la /var/cache/apk/total 1204drwxr-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 root451508 Mar 3 00:30 APKINDEX.5022a8a2.tar.gz-rw-r--r-- 1 root root768680 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-cacheoption更为优雅。

解决方法

使用Alpine映像创建Dockerfile时,我经常看到apk --no-cache提交时使用和的用法,而是看到rm/var/cache/apk/*。

我很好奇,知道利用--no-cache消除了以后再做的必要rm /var/cache/apk/*。我还想知道一种风格是否胜过另一种。

相关文章: