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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

初识Docker-什么是docker

發布時間:2024/4/13 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 初识Docker-什么是docker 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是Docker

微服務雖然具備各種各樣的優勢,但服務的拆分通用給部署帶來了很大的麻煩。

  • 分布式系統中,依賴的組件非常多,不同組件之間部署時往往會產生一些沖突。

  • 在數百上千臺服務中重復部署,環境不一定一致,會遇到各種問題

應用部署的環境問題

大型項目組件較多,運行環境也較為復雜,部署時會碰到一些問題:

  • 依賴關系復雜,容易出現兼容性問題

  • 開發、測試、生產環境有差異

例如一個項目中,部署時需要依賴于node.js、Redis、RabbitMQ、MySQL等,這些服務部署時所需要的函數庫、依賴項各不相同,甚至會有沖突。給部署帶來了極大的困難。

Docker解決依賴兼容問題

而Docker確巧妙的解決了這些問題,Docker是如何實現的呢?

Docker為了解決依賴的兼容問題的,采用了兩個手段:

  • 將應用的Libs(函數庫)、Deps(依賴)、配置與應用一起打包

  • 將每個應用放到一個隔離容器去運行,避免互相干擾

?

這樣打包好的應用包中,既包含應用本身,也保護應用所需要的Libs、Deps,無需再操作系統上安裝這些,自然就不存在不同應用之間的兼容問題了。

雖然解決了不同應用的兼容問題,但是開發、測試等環境會存在差異,操作系統版本也會有差異,怎么解決這些問題呢?

Docker解決操作系統環境差異

要解決不同操作系統環境差異問題,必須先了解操作系統結構。以一個Ubuntu操作系統為例,結構如下:

?

結構包括:

  • 計算機硬件:例如CPU、內存、磁盤等

  • 系統內核:所有Linux發行版的內核都是Linux,例如CentOS、Ubuntu、Fedora等。內核可以與計算機硬件交互,對外提供內核指令,用于操作計算機硬件。

  • 系統應用:操作系統本身提供的應用、函數庫。這些函數庫是對內核指令的封裝,使用更加方便。

應用于計算機交互的流程如下:

1)應用調用操作系統應用(函數庫),實現各種功能

2)系統函數庫是對內核指令集的封裝,會調用內核指令

3)內核指令操作計算機硬件

Ubuntu和CentOSpringBoot都是基于Linux內核,無非是系統應用不同,提供的函數庫有差異:

此時,如果將一個Ubuntu版本的MySQL應用安裝到CentOS系統,MySQL在調用Ubuntu函數庫時,會發現找不到或者不匹配,就會報錯了:

Docker如何解決不同系統環境的問題?

  • Docker將用戶程序與所需要調用的系統(比如Ubuntu)函數庫一起打包

  • Docker運行到不同操作系統時,直接基于打包的函數庫,借助于操作系統的Linux內核來運行

如圖:

小結

Docker如何解決大型項目依賴關系復雜,不同組件依賴的兼容性問題?

  • Docker允許開發中將應用、依賴、函數庫、配置一起打包,形成可移植鏡像

  • Docker應用運行在容器中,使用沙箱機制,相互隔離

Docker如何解決開發、測試、生產環境有差異的問題?

  • Docker鏡像中包含完整運行環境,包括系統函數庫,僅依賴系統的Linux內核,因此可以在任意Linux操作系統上運行

Docker是一個快速交付應用、運行應用的技術,具備下列優勢:

  • 可以將程序及其依賴、運行環境一起打包為一個鏡像,可以遷移到任意Linux操作系統

  • 運行時利用沙箱機制形成隔離容器,各個應用互不干擾

  • 啟動、移除都可以通過一行命令完成,方便快捷

總結

以上是生活随笔為你收集整理的初识Docker-什么是docker的全部內容,希望文章能夠幫你解決所遇到的問題。

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