而google/cloud-sdk这样的就不是官方镜像,而是Google提供的.
在这里,需要对Java做特别的说明,虽然官方提供了一个OpenJDK的基础镜像,但这个基础镜像已经不再维护了....关于这个,我过往写过专门的文章,需要了解的可以参阅: 对Docker基础镜像的思考,该不该选择alpine
使用多平台构建
虽然服务器主流都是X64架构的, 但这并不是完全....ARM架构现在也越来越多的被使用,特别在国内, 统信主流是ARM而不是X64.
在构建你的镜像时,不要只考虑支持X64架构. 而应该考虑支持多平台, 构建一次,支持不同的架构是最佳实践....这个行为在docker镜像中也是存在的, 很多人构建Docker镜像, 完全没有意识到Docker镜像中也存在用户的概念. 没有对这个做任何处理, 这意味着你就是使用Root用户在运行这个镜像服务....只要这样, 这个镜像运行时, 就是以你定义的用户来运行.
当然,在一些复杂的镜像构建中,要考虑用户权限,及后续挂载Host Volume时可能会有权限上的问题. 这一点后续我有时间再单独聊一下.