日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/31 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从微信云托管容器镜像的选择-alpine 说起 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

微信云托管?使用目前主流的容器平臺Docker以及容器編排技術Kubernetes(簡稱K8S),來管理你的項目。使用微信云托管需要掌握對Docker的使用,但你無需掌握K8S的使用方法。微信云托管將K8S的運維配置完全接手,你不需要關心K8S和容器服務如何配置和相互作用,只需要操作微信云托管提供的簡單操作面板,就可以輕松的部署服務,大大降低了容器化技術的使用門檻。當你使用微信生態下的客戶端(小程序、公眾號),向部署在微信云托管上的后端服務發送請求時,會自動經過微信接入層(內網),并附帶微信校驗的權威用戶信息。非微信生態下的客戶端(普通WEB網頁、APP),向部署在微信云托管上的后端服務發送請求時,會經過微信云托管公網網關層(所有用戶共用,由微信云托管團隊維護),并根據域名轉發到對應的用戶服務。微信云托管提供默認公網域名,也可以接入自己備案好的自定義域名。

在微信云托管提供的官方模板里(PHP,Python,NodeJS,Golang,Java,.NET) 唯獨Java 用的不是alpine 鏡像,具體代碼參見 https://github.com/WeixinCloud。

在 容器崛起之前,Alpine?還是個無名之輩,可能是因為大家并不是很關心操作系統本身的大小,畢竟大家只關心業務數據和文檔,程序、庫文件和系統本身的大小通??梢院雎圆挥嫛?/p>

容器技術席卷整個軟件產業之后,大家都注意到了一個問題,那就是容器的鏡像太大了,浪費磁盤空間,拉取鏡像的時間也很長。于是,人們開始尋求適用于容器的更小的鏡像。對于那些耳熟能詳的發行版(例如 Ubuntu、Debian、Fedora)來說,只能通過刪除某些工具(例如?ifconfig?和?netstat)將鏡像體積控制在?100M?以下。而對于 Alpine 而言,什么都不用刪除,鏡像大小也就只有?5M?而已。

Alpine 鏡像的另一個優勢是包管理工具的執行速度非???#xff0c;安裝軟件體驗非常順滑。誠然,在傳統的虛擬機上不需要太關心軟件包的安裝速度,同一個包只需要裝一次即可,無需不停重復安裝。容器就不一樣了,你可能會定期構建新鏡像,也可能會在運行的容器中臨時安裝某些調試工具,如果軟件包的安裝速度很慢,會很快消磨掉我們的耐心。

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中執行。這樣做得好處有二:

  • 保持鏡像最小,busybox,alpine 是最小的操作系統鏡像

  • 有各種linux工具使用,busybox本身是一個linux工具集

  • 構建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 说起的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。