docker鏡像與傳統(tǒng)vm虛擬機區(qū)別及分析
前言碎語
這篇博文是博主在公司內(nèi)推進docker+k8s落地時的部分內(nèi)容。目的是為了讓公司內(nèi)的開發(fā)不管有沒有接觸過docker這個技術(shù),都能準(zhǔn)確的了解docker是什么,怎么打出符合自己項目需要docker鏡像,最終交付給容器環(huán)境運行。
前言:非常重要
今天分享的內(nèi)容主要以實際改造為主,剖開docker的神秘面紗,力求讓大家都知道docker是什么,怎么打dcoker鏡像,docker這塊是開發(fā)必須要了解的,以后我們的交付物不是jar,也不是war,而是可以運行在各種容器化平臺(k8s,swarm,mesos,OpenShift等)的docker鏡像。
k8s這塊已經(jīng)偏運維了,運維需要掌握k8s中的諸多概念,以后運維就不是運維ECS主機了,直接運維k8s。然后分別以spring boot和tomcat兩個類型的不同應(yīng)用為例。講下具體的改造方案,以及我們在這個期間解決的一些問題和改造需要注意的細(xì)節(jié)
大白話docker
docker和傳統(tǒng)vm的區(qū)別
虛擬機屬于完全虛擬化,即模擬完整的底層硬件環(huán)境特權(quán)指令的執(zhí)行,客戶操作系統(tǒng)無需進行修改。比如我們常用的VirtualBox,VMWare Workstation和Parallels Desktop等虛擬化軟件。
Docker和其它容器技術(shù)便是操作系統(tǒng)級虛擬化,即直接通過內(nèi)核創(chuàng)建虛擬的操作系統(tǒng)實例(內(nèi)核和庫),來隔離不同的進程和資源。
大白話:什么是鏡像(image)?
在docker沒有出現(xiàn)流行前,一般提到鏡像,都是Windows等系統(tǒng)鏡像,其實docker鏡像和Windows等系統(tǒng)鏡像在概念上是一樣的,都是將一個完整的可運行的系統(tǒng)打包下,方便下次運行時包含所有環(huán)境,不需要安裝各種依賴了。
java的docker鏡像中一般都有一個最基礎(chǔ)的鏡像+jre環(huán)境,最基礎(chǔ)的系統(tǒng)運行環(huán)境,大概4M左右。然后我們需要將我們的spring boot應(yīng)用copy進去,重新打包鏡像。那么新的鏡像就是包含了我們的應(yīng)用的所有的依賴了。
這個過程相當(dāng)于,將我們uat環(huán)境的ECS主機copy一份鏡像一樣,但是這個體積有很大的區(qū)別。最終我們打完的docker鏡像大小=基礎(chǔ)系統(tǒng)(4M左右)+java(80M左右)+應(yīng)用(100M左右)
spring boot應(yīng)用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
以上就是docker鏡像與傳統(tǒng)vm區(qū)別及分析的詳細(xì)內(nèi)容,更多關(guān)于docker鏡像與vm區(qū)別的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Docker中搭建FastDFS文件系統(tǒng)(多圖教程)
這篇文章主要介紹了Docker中搭建FastDFS文件系統(tǒng)(多圖教程),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05利用Docker搭建本地https環(huán)境的完整步驟
這篇文章主要給大家介紹了關(guān)于如何利用Docker搭建本地https環(huán)境的完整步驟,文中通過示例代碼將實現(xiàn)的步驟介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2018-04-04Docker容器內(nèi)不能聯(lián)網(wǎng)的6種解決方案
今天小編就為大家分享一篇關(guān)于Docker容器內(nèi)不能聯(lián)網(wǎng)的6種解決方案,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10Spring?Boot?分層打包?Docker?鏡像實踐及分析(推薦)
這篇文章主要介紹了Spring?Boot?分層打包?Docker?鏡像實踐及分析,本文通過圖文并茂的形式實例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-12-12docker容器運行成功但無法訪問的原因分析及解決方案(以Tomcat為例親測有效)
這篇文章主要介紹了docker容器運行成功但無法訪問的原因分析及對應(yīng)解決方案(以Tomcat為例親測有效),文中通過圖文結(jié)合的方式介紹的非常詳細(xì),具有一定的參考價值,需要的朋友可以參考下2024-03-03