Docker 入門:什麼是 Docker?

Docker 解決了軟件環境部署複雜的問題。

對於一個傳統的軟件工程,開發人員把寫好的代碼放到服務器上去運行是一件很頭疼的事情,因爲常常會出現環境不兼容而導致各種各樣的 Bug。

比如說,開發是在 windows 系統下編寫的代碼,放到 linux 服務器上可能會出問題;開發在本地依賴了一個系統自帶的驅動,服務器上卻沒有這個驅動;開發在本地設置了很多環境變量,服務器上又得重新設置。。。

在軟件部署的時候,經常會發生在這臺機器上可以跑,但是在另一臺機器上卻運行失敗的情況。運維人員需要不斷在開發環境和服務器環境之間調試。

有了 Docker, 只需要簡單的幾行命令,就可以做到所有的運行環境都一致。

Docker 簡化了環境配置流程
Docker 簡化了環境配置流程

Docker 使用的技術幾乎沒有新技術,大多是對 Linux 已經存在的技術的封裝。Docker 中的容器,是使用 Linux 之前的一些技術,把開發需要設置的環境,全部隔離在一起,形成一個集裝箱。當有其他的環境需要配置的時候,只需要複製一個集裝箱就可以了。

容器可以輕鬆創建和銷燬
容器可以輕鬆創建和銷燬

在環境配置的時候,還可以使用創建虛擬機的方式來實現環境同步。如果服務器用的是 centos 的系統,可以在開發的時候就用 centos 開發。這確實解決了一些問題,但是還是需要去獨立配置每一臺機器。而且,虛擬機本身對多個程序之間的環境不兼容的時候無能爲力,可能需要藉助第三方的一些管理工具,而 Docker 卻可以輕鬆在一臺機器上運行多個容器。

Docker 容器和虛擬機
Docker 容器和虛擬機

容器不是一臺機器。Docker 利用的是 Linux 的資源分離機制,例如 cgroups,以及 Linux 核心命名空間(namespaces),來建立獨立的容器(containers)。容器看上去是一臺機器,實際上是一個進程。

相比於虛擬機,容器的優勢主要有:

  • 資源佔用少
  • 啓動速度快
  • 本身體積小

Docker 給軟件開發領域帶來的不僅僅是提供環境,可以說它直接帶火了 Golang。因爲 Docker 容器創建和銷燬非常方便,很適合用來動態擴容和縮容,可以直接用在雲計算當中的彈性服務當中。另外,基於 Docker 容器的隔離特性,一臺服務器上可以同時跑很多個程序而做到管理方便,很符合微服務架構的需要。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章