最小化docker镜像
2024-09-01 03:20:27
如何让镜像尽可能小
很容器想到from scratch, 就是没任何基础镜像
FROM scratch
COPY p /
ENTRYPOINT ["/p"]
有几点要注意:
- ENTRYPOINT 或者CMD 必须要用[]这种模式,如果直接/p会用sh去启动,而scratch没有shell导致失败
- 二进制程序必须静态编译,也就是不能依赖libc什么的动态库
动态编译的bin程序:
[root@dev-86-205 ci-sftp]# ldd p
linux-vdso.so.1 => (0x00007ffd6ef7b000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa28f94e000)
libc.so.6 => /lib64/libc.so.6 (0x00007fa28f58d000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa28fb72000)
这种情况下出来的bin程序可能会出现问题:
standard_init_linux.go:175: exec user process caused "no such file or directory”
静态编译的bin程序,这是我们scratch需要的:
[root@dev-86-205 ci-sftp]# ldd p
不是动态可执行文件
golang中静态编译命令:
go build --ldflags '-linkmode external -extldflags "-static”'
如果不静态编译那可能得拷贝一堆动态库到镜像中,很多lowB就是那么做的
扫码关注sealyun
探讨可加QQ群:98488045
最新文章
- JS组件系列——BootstrapTable 行内编辑解决方案:x-editable
- CentOS下用yum配置php+mysql+apache(LAMP)
- MySQL 死锁问题分析
- 安装生物信息学软件-bowtie2
- jQuery DataTables 行获取
- CodeForces 300A	 Array
- Makefile第三讲:终端传值给Makefile、Makefile传值给C++代码
- 深入浅出scanf、getcha、gets、cin函数
- Send竞争对手:百度云一小时,QQ超大附件最多支持2G,邮件附件20M到50M不等(附国外所有storage列表)——痛点是,最大传输2G,最大容量只有3G(和微云不是一回事),转存到微云文件不能超过1G
- BCGControlBar使用方法(转)
- Standford机器学习 聚类算法(clustering)和非监督学习(unsupervised Learning)
- 201521123051《Java程序设计》第十四周学习总结
- row_number() over()分页查询
- 固件远程更新之STARTUPE2原语(fpga控制flash)
- java 8 双冒号运算符
- day17--JQuery选择器
- mysql不会使用索引,导致全表扫描情况
- PAT 乙级 1060 爱丁顿数(25) C++版
- Python中os模块使用方法
- Ubuntu 下Apache安装和配置
热门文章
- 使用vue-print-nb插件页面空白以及打印没有样式问题
- 源码解读·RT-Thread操作系统从开机到关机
- HDU 1561:The more, The Better(有依赖的树型背包)
- django基础知识之csrf:
- APM系统SkyWalking介绍
- 不要天真了,这些简历HR一看就知道你是培训的,质量不佳的那种
- Perm排列计数(新博客试水,写的不好,各路大神见谅)
- Java底层技术系列文章-总揽
- EPPLUS 实现excel报表数据及公式填充
- python爬虫笔记之re.compile.findall()