Docker容器入門基本概念

2022-08-09 17:39:19 字數 2352 閱讀 2216

容器分離開的資源:

linux容器並非新概念。最早的容器技術可以追溯到2023年unix系列作業系統上的chroot工具

命名空間(namepaces)是linux核心針對實現容器虛擬化而引入的乙個強大特性

每個容器都可以擁有自己獨立的命名空間,執行其中的應用都像是在獨立的作業系統中執行的一樣。命名空間保證容器之間互不影響。

namepaces

系統呼叫引數

隔離內容

核心版本

utsclone_newuts

主機名和網域名稱

2.6.19

ipcclone_newipc

訊號量、訊息佇列和共享記憶體

2.16.19

pidclone_newpid

程序編號

2.6.24

network

clone_newnet

網路裝置、網路棧、埠等

2.6.19

user

clone_newuser

使用者和使用者組

3.8控制組(cgroups)是linux核心的乙個特性,用來對共享資源進行隔離、限制審計等。只能控制分配到的容器資源,docker才能避免多個容器同時執行時強資源。

控制組可以提供對容器的記憶體、cup、磁碟io等資源經行限制。

cgroups能夠限制的資源有:

cgroup.clone_children           memory.kmem.tcp.max_usage_in_bytes  memory.oom_control

cgroup.event_control memory.kmem.tcp.usage_in_bytes memory.pressure_level

cgroup.procs memory.kmem.usage_in_bytes memory.soft_limit_in_bytes

memory.failcnt memory.limit_in_bytes memory.stat

memory.kmem.failcnt memory.memsw.failcnt memory.usage_in_bytes

memory.kmem.limit_in_bytes memory.memsw.limit_in_bytes memory.use_hierarchy

memory.kmem.max_usage_in_bytes memory.memsw.max_usage_in_bytes notify_on_release

memory.kmem.slabinfo memory.memsw.usage_in_bytes tasks

memory.kmem.tcp.failcnt memory.move_charge_at_immigrate

memory.kmem.tcp.limit_in_bytes memory.numa_stat

傳統方式使用容器功能的話需要我們自己寫**去進行系統呼叫來實現建立核心,實際上擁有此能力的人寥寥無幾。而lxc(linux container)把容器技術做的更加易用,把需要用到的容器功能做成一組工具,從而極大的簡化使用者使用容器技術的麻煩程度。

lxc是最早一批真正把完整的容器技術用一組簡易使用的工具和模板來極大的簡化了容器技術使用的乙個方案。

lxc雖然極大的簡化了容器技術的使用,但比起直接通過核心來使用虛擬技術,其複雜程度本沒有多大的降低,因為我們必須學會lxc的一組命令工具,由於核心的建立都是通過核心來實現,通過批量命令實現資料遷移並不容易。其隔離性也沒有虛擬機器那麼強大。

後來出現docker,所以從一定程度上來說,docker就是lxc的增強版。

docker是乙個開源的容器專案,基於go語言開發。之所以被稱為容器技術,是因為docker對程序進行封裝,隔離於宿主系統和其它的程序,類似於乙個裝東西的容器,而且在容器裡面裝有一系列檔案系統、網路、依賴包等應用程式執行需要的環境,開發人員可以快速將他們的應用程式部署到容器內執行。容器技術屬於作業系統層面的虛擬。

假如我們要搭建lamp架構的時候,他們之間會有依賴關係。哪個先啟動哪個後啟動我們都要編排好,按一定程式來走。docker自身沒有這種功能,所以我們需要乙個在docker的基礎上能夠把這種應用程式之間的依賴關係、從屬關係、隸屬關係等反映啟動、關閉時的次序和管理邏輯中,這種功能稱之為容器編排

常見的容器編排工具:

docker入門一 docker基本概念

docker 是個偉大的專案,它徹底釋放了虛擬化的威力,極大降低了雲計算資源 的成本,同時讓應用的分發 測試 部署和分發都變得前所未有的高效和輕鬆,docker有最基本的幾個概念 docker 映象 docker 映象就是乙個唯讀的模板,像可以用來建立 docker 容器。docker 容器 doc...

Docker基本概念

docker是開發人員和系統管理員構建,發布和執行應用程式的平台。docker允許您快速使用元件組裝應用程式,並消除運送 時可能產生的改變。docker允許您盡快測試並將 部署到生產環境中。docker可以簡化軟體交付,是通過簡化構建包含應用程式整個環境或應用程式作業系統的映象,並共享這個映象。應用...

Docker基本概念

docker 包括三個基本概念 理解了這三個概念,就理解了 docker 的整個生命週期。docker 映象就是乙個唯讀的模板。例如 乙個映象可以包含乙個完整的 ubuntu 作業系統環境,裡面僅安裝了 apache 或使用者需要的其它應用程式。映象可以用來建立 docker 容器。docker 利...