最小化docker镜像
2019-08-08 07:20
1491 查看
如何让镜像尽可能小
很容器想到from scratch, 就是没任何基础镜像
FROM scratch COPY p / ENTRYPOINT ["/p"]
<!--more-->
有几点要注意:
- 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
相关文章推荐
- docker 制作最小化Java镜像
- docker学习笔记4.1-使用Dockerfile文件构建镜像
- 详解如何修改docker pull镜像源
- Docker 配置腾讯云镜像地址
- 在CentOS中使用 MySQL 的 Docker 镜像
- [容器]docker创建镜像
- 使用Dockerfile制作JDK+Tomcat镜像
- 将web项目部署到Docker基于tomcat镜像启动的容器中
- 制作不需要密码就可以互相ssh的docker镜像
- 从零制作Docker镜像的脚本
- docker镜像上传到阿里云
- Docker 镜像使用
- docker for windows 10 添加阿里云镜像仓库无效问题
- docker镜像制作
- docker 三组件:镜像、容器、仓库
- docker通过模板创建镜像以及容器、仓库和数据管理
- 制作ubuntu完整版docker镜像
- 使用 Gradle 构建 Spring-Boot 的 Docker 镜像
- docker 基础教程-入门:(三)--简单制作镜像
- 解决docker镜像无法下载的问题