一.產生背景?
上圖為軟體開發過程,從軟體開始開發到對軟體進行測試,**可能從程式設計師的膝上型電腦切換到測試伺服器,或者從一台物理伺服器切換到公有雲/私有雲上;**依賴的執行庫版本可能會發生變化,比如開發時用的python2.7, 但生產機上用的python3;也可能會**執行的作業系統發生變化,比如開發及用的ubuntu,生產機用的redhat。
因此,應用程式開發人員需要花費額外的精力去處理這種環境問題(infrastructure問題),有沒有一種辦法能使的我不去考慮它們呢?
有,使用容器技術。
二.長什麼樣子?
沒有容器化之前:
虛擬機器是在物理伺服器的上層用軟體來模擬特定的硬體系統。hypervisor位於硬體和系統之間,是建立虛擬機器必須的乙個部分。虛擬機器軟體必須使用hypervisor作為乙個中間層,是虛擬機器技術的核心,當宿主作業系統啟動虛擬機器時,會通過hypervisor給虛擬機器分配記憶體,cpu,網路和磁碟等資源,並載入虛擬的作業系統,因而需要消耗宿主機大量的物理資源。
容器化之後:
一台宿主機上執行的多個容器化應用共享這台宿主機作業系統的核心,因而不需要虛擬機器技術的hypervisor中間層,因而同虛擬機器技術相比,更加輕量化,啟動速度更快。
簡單地說,乙個容器包含了完整的執行時環境:除了應用程式本身之外,這個應用所需的全部依賴、類庫、其他二進位制檔案、配置檔案等,都統一被打入了乙個稱為容器映象的包中。通過將應用程式本身,和其依賴容器化,作業系統發行版本和其他基礎環境造成的差異,都被抽象掉了。
參考
Container布局容器
用於布局的容器元件,方便快速搭建頁面的基本結構 外層容器。當子元素中包含或時,全部子元素回垂直上下排列,否則會水平左右排列。頂欄容器。側邊欄容器。主要區域容器。底欄容器。注意 的子元素只能是後四者,後四者的父元素也只能是。header main header main footer aside ma...
putorch 模型容器Containers
import torch import torchvision import torch.nn as nn from collections import ordereddict sequential class lenetsequential nn.module def init self,cla...
Docker學習之Container容器的具體使用
容器是 docker 又一核心概念。簡單的說,容器是獨立執行的乙個或一組應用,以及它們的執行態環境。對應的,虛擬機器可以理解為模擬執行的一整套作業系統 提供了執行態環境和其他系統環境 和跑在上面的應用。關於容器的操作主要有 啟動容器 有兩種方式,一種是基於映象新建乙個容器並啟動,另外乙個是將在終止狀...