网易首页 > 网易号 > 正文 申请入驻

微服务 Docker 化之基础环境

0
分享至

1. 容器化

Docker 的横空出世,给了容器技术带来了质的飞跃,Docker 标准化了服务的基础设施,统一了应用的打包分发,部署以及操作系统相关类库等,解决了测试生产部署时环境差异的问题。对于运维来讲,由于镜像的不可变性,更容易进行服务部署和回滚操作。利用各种第三方容器管理平台,实现一键部署、动态伸缩等操作变的轻而易举。

2. 基础镜像选择

在操作系统的选择上,可选择传统的 CentOS 、 Ubuntu 或者更为轻量化的 Alpine 。比如 CentOS 或者 Ubuntu 的镜像都在 100MB 以上,压缩后也都有大几十 MB ,而轻量化的 Alpine 3.10 版本镜像大小约为 5.58MB ,而它压缩后更是仅有 2MB 大小左右。

Alpine 操作系统是一个面向安全的轻型 Linux 发行版。它不同于通常 Linux 发行版,Alpine 采用了 musl libc 和 busybox 以减小系统的体积和运行时资源消耗,但功能上比 busybox 又完善的多,因此得到开源社区越来越多的青睐。在保持瘦身的同时,Alpine 还提供了自己的包管理工具 apk 。

关于基础镜像的选择,一个是考虑镜像的大小,另一个是只提供最小的依赖包。关于第二点,不同的服务所需要的依赖包是不同的,这里不再展开讨论,如果仅从第一点考虑的话, Alpine 肯定是首选,镜像越小,远程推拉越快,消耗的资源也越小,更为的方便,我们这里采用 Alpine 作为基础镜像。

3. Dockerfile 编写

选择 Alpine 有一个比较麻烦的地方是 Alpine 采用的是 musl libc 的 C 的标准库,而 Oracle 或者 OpenJDK 提供的版本主要是已 glibc 为主。所以我们考虑为 Alpine 加上 glibc ,然后添加 glibc 的 JDK 编译版本作为基础镜像。

3.1 Alpine + glibc

这里选择的版本是目前最新版 Alpine 3.10 版本,glibc 采用的是 Sgerrand 开源的 glibc 安装包(https://github.com/sgerrand/alpine-pkg-glibc/ ),版本为 2.30-r0 。具体代码如下:

代码清单:chapter17/dockerfiles/alpine-glibc/Dockerfile

这里有几点需要注意的:

  • 由于 Docker 是分层设计,而在 Dockerfile 中,每一条指令都拥有自己的 context ,而执行到下一条指令时,则会将下一层的构建层叠加到上一层,因此在安装类库的时候最好将命令写在同一个 RUN 指令中,减少分层,降低最后镜像的大小
  • RUN 命令中安装了类库或者软件包,需要在同一个命令中删除 apk 的 cache ,这样才能有效删除 apk ,减小镜像大小。
  • 基础镜像的标签不要使用 latest ,当镜像没有指定标签时,将默认使用 latest 标签。当镜像更新时, latest 标签会指向不同的镜像,这时构建镜像有可能失败。如果你的确需要使用最新版的基础镜像,可以使用 latest 标签,否则的话,最好指定确定的镜像标签。
  • 这里笔者已经创建好了一个版本,上传到阿里云的镜像仓库上,有需要的读者可以直接 pull 这个镜像使用。

3.2 Alpine + glibc + JDK8

对于 JDK 的版本选择,有 Oracle 的 Hotspot JDK ,也有 OpenJDK 。这里我们在构建 JDK8 的时候采用 Oracle 的 server-jre-8u221 版本。而对于 JDK9 、 JDK10 以及 JDK11 我们采用 OpenJDK 来进行构建。

Oracle 的 JDK8 的镜像构建的 Dockerfile 如下:

代码清单:chapter17/dockerfiles/java8/Dockerfile

同样,此镜像作者已经上传阿里云镜像仓库,可以直接使用以下命令拉取:

可以进行验证,命令如下:

执行结果如下:

3.3 Alpine + glibc + OpenJDK9

OpenJDK9 的镜像构建的 Dockerfile 如下:

代码清单:chapter17/dockerfiles/java9/Dockerfile

OpenJDK 的 jre 这里笔者使用清华大学镜像站的镜像进行安装。

docker pull registry.cn-shanghai.aliyuncs.com/springcloud-book/alpine3.10:openjdk9-jre-9.0.4

验证命令如下:

docker run --rm -it registry.cn-shanghai.aliyuncs.com/springcloud-book/alpine3.10:openjdk9-jre-9.0.4 java -version

3.4 Alpine + glibc + OpenJDK10

OpenJDK10 的镜像构建的 Dockerfile 如下:

代码清单:chapter17/dockerfiles/java10/Dockerfile

docker pull registry.cn-shanghai.aliyuncs.com/springcloud-book/alpine3.10:openjdk10-jre-10.0.2

验证命令如下:

docker run --rm -it registry.cn-shanghai.aliyuncs.com/springcloud-book/alpine3.10:openjdk10-jre-10.0.2 java -version

3.5 Alpine + glibc + OpenJDK11

OpenJDK11 的镜像构建的 Dockerfile 如下:

代码清单:chapter17/dockerfiles/java11/Dockerfile

docker pull registry.cn-shanghai.aliyuncs.com/springcloud-book/alpine3.10:openjdk11-jre-11.0.2

验证命令如下:

docker run --rm -it registry.cn-shanghai.aliyuncs.com/springcloud-book/alpine3.10:openjdk11-jre-11.0.2 java -version

4. 实例代码

示例代码-Github:

https://github.com/meteor1993/SpringCloudLearning/tree/master/chapter17

示例代码-Gitee:

https://gitee.com/inwsy/SpringCloudLearning/tree/master/chapter17

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
金色梅花5角估价15000元,这个年份谁能找到?速查

金色梅花5角估价15000元,这个年份谁能找到?速查

小陈收藏社
2026-02-13 14:23:02
官宣,武汉临空港正式更名!

官宣,武汉临空港正式更名!

牛锅巴小钒
2026-02-17 20:08:28
冬奥会突发!中国选手刘佳宇头部冲下摔倒,一度失去意识

冬奥会突发!中国选手刘佳宇头部冲下摔倒,一度失去意识

极目新闻
2026-02-11 22:06:18
1-0!姆巴佩屡失良机,1.5亿超巨世界波,穆帅染红,皇马客场复仇

1-0!姆巴佩屡失良机,1.5亿超巨世界波,穆帅染红,皇马客场复仇

我的护球最独特
2026-02-18 06:14:29
十几年前波士顿动力机器人就会翻跟斗了,中国的机器人厉害在哪里

十几年前波士顿动力机器人就会翻跟斗了,中国的机器人厉害在哪里

狐狸先森讲升学规划
2026-02-17 12:12:04
法国总统马克龙网上中文拜年,俄罗斯外交部发言人扎哈罗娃:“家里吃饺子迎春节”

法国总统马克龙网上中文拜年,俄罗斯外交部发言人扎哈罗娃:“家里吃饺子迎春节”

齐鲁壹点
2026-02-17 21:15:19
新任金华市政协党组副书记,已明确!

新任金华市政协党组副书记,已明确!

浙中在线
2026-02-17 20:34:29
吉祥三宝爆红20年,乌日娜再登春晚:丈夫去世女儿远嫁,物是人非

吉祥三宝爆红20年,乌日娜再登春晚:丈夫去世女儿远嫁,物是人非

up鹿
2026-02-17 08:00:38
王一博春晚舞台脚滑,穿镶钻定制鞋扫堂腿将地板划出两道痕,网友:0人看出脚滑

王一博春晚舞台脚滑,穿镶钻定制鞋扫堂腿将地板划出两道痕,网友:0人看出脚滑

海峡网
2026-02-17 21:56:35
台湾统一方式或出乎意料,特朗普才发现:中国真高明,自己学不来

台湾统一方式或出乎意料,特朗普才发现:中国真高明,自己学不来

卷史
2026-01-29 16:18:40
王楚然山东大高个

王楚然山东大高个

情感大头说说
2026-02-16 22:21:44
回顾“91女神”琪琪:五官出众,却因天真让自己“受伤”

回顾“91女神”琪琪:五官出众,却因天真让自己“受伤”

就一点
2025-11-22 10:36:39
以为改名就能红,结果是越改越糊,这5位多次改名的明星好心酸

以为改名就能红,结果是越改越糊,这5位多次改名的明星好心酸

上官晚安
2026-02-12 11:33:26
连看《飞驰人生3》《惊蛰无声》,一部超上头,一部看得昏昏欲睡

连看《飞驰人生3》《惊蛰无声》,一部超上头,一部看得昏昏欲睡

秋姐居
2026-02-17 22:08:54
苹果,突然官宣!

苹果,突然官宣!

每日经济新闻
2026-02-17 07:47:09
36年前的“神剧”大年初一重播,大叔惊呼“爷青回”,重温童年的欢笑与温暖

36年前的“神剧”大年初一重播,大叔惊呼“爷青回”,重温童年的欢笑与温暖

新民晚报
2026-02-16 20:45:43
日媒:东京塔的红灯灭了,高市的“春节贺词”变味了,演都懒得演

日媒:东京塔的红灯灭了,高市的“春节贺词”变味了,演都懒得演

格斗社
2026-02-16 22:53:20
2000架退役歼7不浪费!外销朝鲜,竟是武统收台的隐藏助力

2000架退役歼7不浪费!外销朝鲜,竟是武统收台的隐藏助力

小莜读史
2026-02-10 17:25:31
初二到初四广东大部有阳光

初二到初四广东大部有阳光

广东天气
2026-02-17 12:47:35
女生主动起来有多黏人?网友:这些女的太开放了

女生主动起来有多黏人?网友:这些女的太开放了

带你感受人间冷暖
2026-01-27 00:20:06
2026-02-18 06:51:00
极客挖掘机
极客挖掘机
定期发表编程相关内容
17文章数 156关注度
往期回顾 全部

科技要闻

春晚这些机器人是怎样做到的?

头条要闻

加州州长纽森炮轰特朗普:把美国未来卖给中国

头条要闻

加州州长纽森炮轰特朗普:把美国未来卖给中国

体育要闻

谷爱凌:'不小心"拿到了银牌 祝大家马年大吉

娱乐要闻

春节档电影首波口碑出炉!

财经要闻

大年初一,这三件事很不寻常

汽车要闻

问界M6更多信息:乾崑智驾ADS4.0+鸿蒙座舱5.0

态度原创

时尚
亲子
手机
游戏
公开课

今年春天最流行的4组配色,过年穿时髦又高级!

亲子要闻

怀疑孩子被侵犯,请宝妈们务必强制报告!

手机要闻

Omdia:东南亚智能手机市场2025Q4恢复增长,全年数据不及2024

LOL一哥刚复播,人气却暴跌不足10w+,玩新模式一句话令人心酸!

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版