當前位置:編程學習大全網 - 源碼下載 - 怎麽用通俗易懂的話來解釋Docker(容器)技術

怎麽用通俗易懂的話來解釋Docker(容器)技術

官網的介紹是這樣的:

Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications....

其實看完這句話還是不明白究竟是啥的,下面就慢慢解釋。不過長話短說的話,把他想象成壹個用了壹種新穎方式實現的超輕量虛擬機,在大概效果上也是正確的。當然在實現的原理和應用上還是和VM有巨大差別的,並且專業的叫法是應用容器(Application Container)。

為啥要用容器?

那麽應用容器長什麽樣子呢,壹個做好的應用容器長得就好像壹個裝好了壹組特定應用的虛擬機壹樣。比如我現在想用MySQL那我就找個裝好MySQL的容器,運行起來,那麽我就可以使用 MySQL了。

那麽我直接裝個 MySQL不就好了,何必還需要這個容器這麽詭異的概念?話是這麽說,可是妳要真裝MySQL的話可能要再裝壹堆依賴庫,根據妳的操作系統平臺和版本進行設置,有時候還要從源代碼編譯報出壹堆莫名其妙的錯誤,可不是這麽好裝。而且萬壹妳機器掛了,所有的東西都要重新來,可能還要把配置在重新弄壹遍。但是有了容器,妳就相當於有了壹個可以運行起來的虛擬機,只要妳能運行容器,MySQL的配置就全省了。而且壹旦妳想換臺機器,直接把這個容器端起來,再放到另壹個機器就好了。硬件,操作系統,運行環境什麽的都不需要考慮了。

在公司中的壹個很大的用途就是可以保證線下的開發環境、測試環境和線上的生產環境壹致。當年在 Baidu 經常碰到這樣的事情,開發把東西做好了給測試去測,壹般會給壹坨代碼和壹個介紹上線步驟的上線單。結果代碼在測試機跑不起來,開發就跑來跑去看問題,壹會兒啊這個配置文件忘了提交了,壹會兒啊這個上線命令寫錯了。找到了壹個 bug 提上去,開發壹看,啊我怎麽又忘了把這個命令寫在上線單上了。類似的事情在上線的時候還會發生,變成啊妳這個軟件的版本和我機器上的不壹樣……在 Amazon 的時候,由於壹個開發直接擔任上述三個職位,而且有壹套自動化部署的機制所以問題會少壹點,但是上線的時候大家還是膽戰心驚。

若果利用容器的話,那麽開發直接在容器裏開發,提測的時候把整個容器給測試,測好了把改動改在容器裏再上線就好了。通過容器,整個開發、測試和生產環境可以保持高度的壹致。

此外容器也和VM壹樣具有著壹定的隔離性,各個容器之間的數據和內存空間相互隔離,可以保證壹定的安全性。

  • 上一篇:儲能逆變器檢測平臺都要完成那些測試項目?
  • 下一篇:誰能推薦幾部好電影?
  • copyright 2024編程學習大全網