Docker學習系列 Docker簡介

2021-08-07 20:38:37 字數 1351 閱讀 5519

docker 是乙個開源的應用容器引擎,基於 go 語言 並遵從apache2.0協議開源。

docker 可以讓開發者打包他們的應用以及依賴包到乙個輕量級、可移植的容器中,然後發布到任何流行的 linux 機器上,也可以實現虛擬化。

乙個完整的docker 有以下幾個部分組成:

1. dockerclient 客戶端

2 docker daemon 守護程序

3. docker image 映象

4. dockercontainer 容器

docker 設計目的:

一款開源軟體能否在商業上成功,很大程度上依賴三件事 - 成功的 user case(用例), 活躍的社群和乙個好故事。 dotcloud 自家的 paas 產品建立在

docker之上,長期維護且有大量的使用者,社群也十分活躍,接下來我們看看docker的故事。

雲計算時代的到來 - aws的成功, 引導開發者將應用轉移到 cloud 上, 解決了硬體管理的問題,然而中介軟體相關的問題依然存在 (所以openstack heat和 aws cloudformation 都著力解決這個問題)。開發者思路變化提供了可能性。

虛擬化手段的變化 - cloud 時代採用標配硬體來降低成本,採用虛擬化手段來滿足使用者按需使用的需求以及保證可用性和隔離性。然而無論是kvm還是xen在 docker 看來,都在浪費資源,因為使用者需要的是高效執行環境而非os, guestos既浪費資源又難於管理, 更加輕量級的lxc更加靈活和快速

lxc的移動性 - lxc在 linux 2.6 的 kernel 裡就已經存在了,但是其設計之初並非為雲計算考慮的,缺少標準化的描述手段和容器的可遷移性,決定其構建出的環境難於遷移和標準化管理(相對於kvm之類image和snapshot的概念)。docker 就在這個問題上做出實質性的革新。這是docker最獨特的地方。

docker架構

docker 使用客戶端-伺服器 (c/s) 架構模式,使用遠端api來管理和建立docker容器。docker 容器通過 docker 映象來建立。容器與映象的關係類似於物件導向程式設計中的物件與類

docker

物件導向

容器物件映象類

docker採用 c/s架構 docker daemon 作為服務端接受來自客戶的請求,並處理這些請求(建立、執行、分發容器)。 客戶端和服務端既可以執行在乙個機器上,也可通過 socket 或者restful api 來進行通訊。

docker daemon 一般在宿主主機後台執行,等待接收來自客戶端的訊息。 docker 客戶端則為使用者提供一系列可執行命令,使用者用這些命令實現跟 docker daemon 互動。

使用時

Docker學習收藏系列(一) 認識Docker

1 docker 是乙個軟體平台,讓您可以快速構建 測試和部署應用程式。docker 將軟體打包成名為容器的標準化單元,這些單元具有執行軟體所需的所有功能,包括庫 系統工具 和執行時。使用 docker,您可以將應用程式快速部署和擴充套件到任何環境中,並且知道您的 將執行。2 docker工作原理 ...

Docker系列四 使用UI管理docker容器

一 什麼是portainer?docker pull portainer portainer三 執行portainer portainer執行方式有以下兩種方式 1 單機版執行 如果僅有乙個docker宿主機,則可使用單機版執行,執行以下命令就可以啟動了 docker run d p 9000 90...

docker學習筆記1 docke環境的檢視

本文的操作是在ubuntu作業系統下的。一 環境檢查 當登入乙個安裝了docker的機器後,首先我們要檢查下docker環境如何。1 命令 docker v 上述命令返回安裝的docker的版本資訊,返回的資訊可能如下 docker version 1.9.1,build a34a1d5 說明 執行...