微信云托管 使用目前主流的容器平台Docker以及容器编排技术Kubernetes(简称K8S),来管理你的项目。使用微信云托管需要掌握对Docker的使用,但你无需掌握K8S的使用方法。微信云托管将K8S的运维配置完全接手,你不需要关心K8S和容器服务如何配置和相互作用,只需要操作微信云托管提供的简单操作面板,就可以轻松的部署服务,大大降低了容器化技术的使用门槛。当你使用微信生态下的客户端(小程序、公众号),向部署在微信云托管上的后端服务发送请求时,会自动经过微信接入层(内网),并附带微信校验的权威用户信息。非微信生态下的客户端(普通WEB网页、APP),向部署在微信云托管上的后端服务发送请求时,会经过微信云托管公网网关层(所有用户共用,由微信云托管团队维护),并根据域名转发到对应的用户服务。微信云托管提供默认公网域名,也可以接入自己备案好的自定义域名。

在微信云托管提供的官方模板里(PHP,Python,NodeJS,Golang,Java,.NET) 唯独Java 用的不是alpine 镜像,具体代码参见 https://github.com/WeixinCloud。

在 容器崛起之前,Alpine 还是个无名之辈,可能是因为大家并不是很关心操作系统本身的大小,毕竟大家只关心业务数据和文档,程序、库文件和系统本身的大小通常可以忽略不计。

容器技术席卷整个软件产业之后,大家都注意到了一个问题,那就是容器的镜像太大了,浪费磁盘空间,拉取镜像的时间也很长。于是,人们开始寻求适用于容器的更小的镜像。对于那些耳熟能详的发行版(例如 Ubuntu、Debian、Fedora)来说,只能通过删除某些工具(例如 ifconfig 和 netstat)将镜像体积控制在 100M 以下。而对于 Alpine 而言,什么都不用删除,镜像大小也就只有 5M 而已。

Alpine 镜像的另一个优势是包管理工具的执行速度非常快,安装软件体验非常顺滑。诚然,在传统的虚拟机上不需要太关心软件包的安装速度,同一个包只需要装一次即可,无需不停重复安装。容器就不一样了,你可能会定期构建新镜像,也可能会在运行的容器中临时安装某些调试工具,如果软件包的安装速度很慢,会很快消磨掉我们的耐心。

Alpine操作系统是一个面向安全的轻型Linux发行版。它不同于通常的Linux发行版,Alpine采用了musl libc和BusyBox以减小系统的体积和运行时资源消耗,但功能上比BusyBox又完善得多。在保持瘦身的同时,Alpine还提供了自己的包管理工具apk,可以通过https://pkgs.alpinelinux.org/packages查询包信息,也可以通过apk命令直接查询和安装各种软件。

Alpine Docker镜像也继承了Alpine Linux发行版的这些优势。相比于其他Docker镜像,它的容量非常小,仅仅只有5MB左右(Ubuntu系列镜像接近200MB),且拥有非常友好的包管理机制。官方镜像来自docker-alpine项目。

在制作docker镜像时,使用 multi stage 构建各个不同阶段的命令文件,最终copy到busybox或alpilne中执行。这样做得好处有二:

  1. 保持镜像最小,busybox,alpine 是最小的操作系统镜像

  2. 有各种linux工具使用,busybox本身是一个linux工具集

  3. 构建stage建议使用alpine和其它的官方包, 主要理由是此镜像比busybox稍大,但是比其他的系统镜像都小,有人就问了,为撒不用busybox呢,因为busybox没有包管理工具,这带来很多不便;这点也是busybox和alpine的主要区别

下面我们来看一看.NET 和 Java的 alpine 的镜像情况:

当前Java 没有针对Alpine的官方稳定的OpenJDK 11构建,虽然 https://adoptopenjdk.net/ 拥有Alpine对Java 11的官方支持:https://hub.docker.com/r/adoptopenjdk/openjdk11。

Alpine是为了响应客户请求更安全的容器发行版而添加的,从.NET Core 2.0开始 .NET 就有针对Alpine 的官方稳定的.NET 构建,对Alpine 有非常好的支持,因为它包含的软件包更少,并且由于其表面积的减少,似乎具有更有限的CVE暴露:https://hub.docker.com/_/microsoft-dotnet-runtime。

相关文章:

  • 优化 ASP.NET Core Docker 镜像的大小

  • https://github.com/dotnet/dotnet-docker/blob/main/documentation/guiding-principles.md

  • https://devblogs.microsoft.com/dotnet/staying-safe-with-dotnet-containers/

从微信云托管容器镜像的选择-alpine 说起相关推荐

  1. 微信云托管如何实现一套代码对应多个环境

    微信云托管 是由微信团队联合腾讯云推出的一站式后端云服务.对于应用开发采用前后端分离架构的场景,云托管可做到免运维免域名.免服务器管理.防 DDoS 攻击和境外加速等,从代码管理到 CI/CD 流水线 ...

  2. 使用微信云托管快速部署一个.Net Core项目(一)

    前几天微信将小程序开发者工具内的云托管升级为微信云托管,新增了很多诸如OpenApi.MySql数据库.流水线构建.web控制台等能力.看文档还是蛮激动的,对开发者来说确实是个好消息,因为之前的一些业 ...

  3. 微信云托管常见问题FAQ(一)

    Q1: 云托管的时间相差8个小时? A:容器系统时间默认为 UTC 协调世界时间 (Universal Time Coordinated),与本地所属时区 CST (上海时间)相差 8 个小时: 在构 ...

  4. 微信云托管-填坑之旅

    微信云开发开始收费了,一个月20块钱,贼贵,用不起.而按用量收费.资源还能复用的兄弟产品微信云托管还像还行.所以就有了一场填坑旅行. windows10下安装docker之坑 在本地开发,需要使用do ...

  5. 可靠、稳定、安全,龙蜥云原生容器镜像正式发布!

    文/云原生 SIG 01 背景 随着云原生的蓬勃发展,越来越多的企业在自己的生产或者测试环境使用云原生技术,而容器镜像正是云原生技术中应用的实际运行环境.一个好的容器运行环境即容器镜像会真正关系到应用 ...

  6. Spring Boot项目微信云托管入门部署

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  7. 【微信小程序】uniapp开发小程序如何使用微信云托管或云函数进行云开发

    一. 申请微信云托管 这个不用说吧必须的,官方地址在这.直接进去申请就行. 但是前提是你得会创建docker file,学习掌握一些基本的docker知识,会让你创建环境变得简单一点.环境创建完成之后 ...

  8. 小城里的“明星”产业,有微信云托管保驾护航

    小城故事多,充满喜和乐. 地处河南省最南端的信阳市是一座拥有600多万常住人口的中小型城市,四季分明,气候适宜,有"江南北国.北国江南"之美誉.信阳当地拥有众多娱乐设施,但其中有一 ...

  9. 搞了半天 微信云托管 就是个docker

    云托管的第一步 是 创建版本 在创建版本前,先在自己的开发机上,用本机的docker, 做好dockerfile 在写Dockerfile的时候 最好选好一个好的 基础镜像版本 如果没有 就自己做一个 ...

最新文章

  1. Linux 常用命令标记
  2. jquery源码--jquery对象
  3. 取第N个排序的元素之Mysql存储过程动态SQL order by offset实现案例
  4. Epoll详解及源码分析
  5. Django syncdb mysql error on localhost - (1045, Access denied for user 'ODBC'@'
  6. oracle undo管理机制,Oracle UNDO数据概念和管理
  7. 2020-2021网络游戏行业人才招聘报告
  8. 信息学奥赛一本通 1082:求小数的某一位 | OpenJudge NOI 小学奥数 7830
  9. 解决Dataframe删除操作时警告:SettingWithCopyWarning:A value is trying to be set on a copy of a slice from a...
  10. K-th Number Poj - 2104 主席树
  11. php源码内网穿透,PHP DDOS源码
  12. 卸载JLink驱动弹出“could not open INSTALL.LOG file”的解决方法
  13. Pom.xml文件教程详解
  14. # Android实习周记-9.29
  15. 报错 RuntimeError: a view of a leaf Variable that requires grad is being used in an in-place operation
  16. 麦克风离计算机主机多远,直观:您对计算机麦克风的设置和使用了解多少?
  17. 学习笔记:发布自己的python模块安装包
  18. JAVA学习从软件工程导论课自动出题软件编程项目开始
  19. C语言函数大全-- r 开头的函数
  20. 男人和女人分别必看的十大电影(共20部)

热门文章

  1. 神奇的伽玛函数(上) | 数学之美
  2. Premiere动态文本预设 800+文字动画动态展示PR/AE预设模板
  3. Oracle utl_http post响应报文乱码
  4. 计算机读书报告Word,《读书报告模版》word版.doc
  5. 第一讲:计算机七层参考模型
  6. 等差数列的一些公式(求和...)
  7. WPF实现地震波警示效果
  8. 关于云计算,这是我史上见过最通俗易懂的解释了
  9. DevEcoStudio 个人记录备份 1
  10. matlab数组做运算,6.2 MATLAB数组的运算