本篇内容主要讲解“如何精简Docker镜像”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何精简Docker镜像”吧!查看 docker hub 中的一些镜像,我们有时能看到很多极小的镜像,比如:这么小的镜像是怎么做出来的呢?话接上文,接下来就介绍一些精简 Docker 镜像的终极手段!方法:使用 scratch
或者 busybox
作为基础镜像。关于 scratch:一个空镜像,只能用于构建镜像,通过 FROM scratch
在构建一些基础镜像,比如 debian
、 busybox
,非常有用用于构建超少镜像,比如构建一个包含所有库的二进制文件关于 busybox
只有 1~5M 的大小包含了常用的 UNIX 工具开发云主机域名非常方便构建小镜像这些超小的基础镜像,结合能生成静态原生 ELF 文件的编译语言,比如C/C++,比如 Go,特别方便构建超小的镜像。cloudcomb-logo(C语言开发) 就是用到了该原理,才能构建出 585 字节的镜像。redis
同样使用 C语言 开发,看来也有很大的优化空间,下面这个实验,让我们介绍具体的操作方法。实验上下文:隆重推出 ldd:打印共享的依赖库将所有需要的 .so 文件打包:再制作成 Dockerfile:执行构建:查看大小:哇!显著提高啦!测试一下:总结一下:用 ldd
查出所需的 .so 文件将所有依赖压缩成 rootfs.tar
或 rootfs.tar.gz
,之后打进 scratch
基础镜像Go 语言天生就方便用来构建精简镜像,得益于它能方便的打包成包含静态链接的二进制文件。打个比方,你有一个 4 MB 大小的包含静态链接的 Go 二进制,并且将其打进 scratch 这样的基础镜像,你得到的镜像大小也只有区区的 4 MB。这可是包含同样功能的 Ruby 程序的百分之一啊。这里再给大家介绍一个非常好用开源的 Go 编译工具:golang-builder,并给大家实际演示一个例子程序代码:Dockerfile:通过 golang-builder 打包成镜像:查看镜像大小(Mac下测试):到此,相信大家对“如何精简Docker镜像”有了更深的了解,不妨来实际操作一番吧!这里是开发云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
这篇文章将为大家详细讲解有关如何进行Live Migrate 操作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Migrate 操作会先将 inst开发云主机域名ance 停掉,也就是所谓的“冷迁移”。而 Li…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。