網站首頁 編程語言 正文
前言碎語
這篇博文是博主在公司內推進docker+k8s落地時的部分內容。目的是為了讓公司內的開發不管有沒有接觸過docker這個技術,都能準確的了解docker是什么,怎么打出符合自己項目需要docker鏡像,最終交付給容器環境運行。
前言:非常重要
今天分享的內容主要以實際改造為主,剖開docker的神秘面紗,力求讓大家都知道docker是什么,怎么打dcoker鏡像,docker這塊是開發必須要了解的,以后我們的交付物不是jar,也不是war,而是可以運行在各種容器化平臺(k8s,swarm,mesos,OpenShift等)的docker鏡像。
k8s這塊已經偏運維了,運維需要掌握k8s中的諸多概念,以后運維就不是運維ECS主機了,直接運維k8s。然后分別以spring boot和tomcat兩個類型的不同應用為例。講下具體的改造方案,以及我們在這個期間解決的一些問題和改造需要注意的細節
大白話docker
docker和傳統vm的區別
虛擬機屬于完全虛擬化,即模擬完整的底層硬件環境特權指令的執行,客戶操作系統無需進行修改。比如我們常用的VirtualBox,VMWare Workstation和Parallels Desktop等虛擬化軟件。
Docker和其它容器技術便是操作系統級虛擬化,即直接通過內核創建虛擬的操作系統實例(內核和庫),來隔離不同的進程和資源。
大白話:什么是鏡像(image)?
在docker沒有出現流行前,一般提到鏡像,都是Windows等系統鏡像,其實docker鏡像和Windows等系統鏡像在概念上是一樣的,都是將一個完整的可運行的系統打包下,方便下次運行時包含所有環境,不需要安裝各種依賴了。
java的docker鏡像中一般都有一個最基礎的鏡像+jre環境,最基礎的系統運行環境,大概4M左右。然后我們需要將我們的spring boot應用copy進去,重新打包鏡像。那么新的鏡像就是包含了我們的應用的所有的依賴了。
這個過程相當于,將我們uat環境的ECS主機copy一份鏡像一樣,但是這個體積有很大的區別。最終我們打完的docker鏡像大小=基礎系統(4M左右)+java(80M左右)+應用(100M左右)
spring boot應用docker鏡像腳本Dockerfile示例
FROM registry-vpc.cn-shanghai.aliyuncs.com/keking/jdk:1.8 ENV LANG C.UTF-8 COPY producer/target/salesApp-1.0-RELEASES.jar app.jar CMD $runShell
原文鏈接:http://www.kailing.pub/article/index/arcid/218.html
相關推薦
- 2022-04-12 C#實現六大設計原則之里氏替換原則_C#教程
- 2022-12-12 Flutter手機權限檢查與申請實現方法詳解_Android
- 2022-02-17 解決 Uncaught SyntaxError: Unexpected token ‘<‘ 錯誤解決
- 2023-03-18 ASP.NET?Core?7?Razor?Pages項目發布到IIS的詳細過程_實用技巧
- 2022-09-20 C#利用TreeView控件實現目錄跳轉_C#教程
- 2021-12-02 利用Matlab仿真實現圖像煙霧識別(k-means聚類圖像分割+LBP+PCA+SVM)_C 語言
- 2022-04-30 Qt數據庫應用之實現通用數據庫分頁_C 語言
- 2022-05-06 Python如何判斷字符串是否僅包含數字_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支