docker學習之一 什麼是docker

2022-03-20 17:33:30 字數 1332 閱讀 3676

一開始看了許多文章,但是總覺得還是沒有完全理解什麼是docker。建議先動手操作實踐,之後回頭再來看看什麼是docker。

docker可以輕鬆方便自由的搭建和部署各種應用(包含執行環境 )的乙個軟體,它可以執行在linux  、windows 和 macos系統上。

簡單得來說,docker是乙個由go語言寫的程式執行的「容器」(linux containers, lxcs),容器內部是程式**+支援執行程式的各種軟體; 目前雲服務的基石是作業系統級別的隔離,在同一臺物理伺服器上虛擬出多個主機。docker則實現了一種應用程式級別的隔離; 它改變我們基本的開發、操作單元,由直接操作虛擬主機(vm),轉換到操作程式執行的「容器」上來。

特點:

減少伺服器效能開銷主要是和虛擬機器vm比較而言,docker和虛擬機器兩者雖然都屬於虛擬化的技術,目標都是為了將一套應用程式所需的執行環境打包起來,建立乙個孤立環境,方便在不同的硬體中移動,但兩者的運作思維截然不同。虛擬機器是在作業系統層面進行虛擬化,而docker是在應用程式層面進行虛擬化。傳統虛擬化技術從作業系統層下手,目標是建立乙個可以用來執行整套作業系統的沙盒獨立執行環境,習慣以虛擬機器(virtual machine)來稱呼。而docker則是直接將乙個應用程式所需的相關程式**、函式庫、環境配置檔案都打包起來建立沙盒執行環境,一台硬體伺服器要虛擬多個環境必須安裝多個作業系統,每個作業系統對應乙個虛擬機器,而docker卻不用,它只是執行在伺服器上的乙個軟體而已,但都實現了虛擬效果。由於不用安裝多個作業系統,對硬體的利用率相對於虛擬機器而言會大大提公升。

現實中,如果一台伺服器或者一台虛擬機器上同時執行兩個或者多個專案,當由於某個專案訪問量過高或者出現故障拖累某個環境的效能(例如:訪問量過大php效能達到瓶頸),那麼其他專案由於都共用同乙個環境,所以都會受到影響。例如:伺服器一上同時執行兩個專案a和b,此時b專案由於訪問量突增或者遭到攻擊,php效能達到瓶頸處理速度巨慢,那麼a專案也會受到影響。那麼在docker中則不會出現這樣的問題(具體也要看如何部署),docker中容器(docker的乙個概念後面會詳細介紹)間是不會相互影響的,我們把a和b放到兩個容器內,假如b或者a崩潰,絕對不會影響到a或者b。

2、docker安裝

以centos 作業系統為例,docker 執行在centos 6.5 或更高的版本的 centos 上,需要核心版本是 2.6.32-431 或者更高版本 ,因為這是允許它執行的指定核心補丁版本。

公升級centos版本命令

yum install update

公升級linux 核心

請看最後安裝docker

sudo yum install docker

Docker學習(一) 什麼是Docker?

docker 是乙個基於go語言實現的開源應用容器專案,讓開發者可以打包他們的應用以及依賴包到乙個可移植的容器中,然後發布到任何流行的 linux機器上,也可以實現虛擬化。docker的構想是要實現對應用元件級別的 一次封裝 到處執行 這裡的應用元件,既可以是乙個web應用 乙個編譯環境,也可以是一...

docker 一 什麼是docker

docker 是乙個開源專案,誕生於 2013 年初,初是 dotcloud 公司內部的乙個業餘專案。它基於 google 公司推 出的 go 語言實現。專案後來加入了 linux 會,遵從了 apache 2.0 協議,專案 在 github 上進行維護。docker 自開源後受到廣泛的關注和討論...

Github學習之一 什麼是Github

github是通過git進行版本控制的軟體源 託管服務。由github公司 曾稱logical awesome 的開發者chris wanstrath pj hyett和tom preston werner使用ruby on rails編寫而成。github通常用於軟體開發。github還支援以下格...