Docker的學習 介紹和安裝

2022-02-07 16:32:34 字數 3690 閱讀 4063

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

docker 專案的目標是實現輕量級的作業系統虛擬化解決方案。 docker 的基礎是 linux 容器(lxc)等技術。

在 lxc 的基礎上 docker 進行了進一步的封裝,讓使用者不需要去關心容器的管理,使得操作更為簡便。使用者操作 docker 的容器就像操作乙個快速輕量級的虛擬機器一樣簡單。

下面的比較了 docker 和傳統虛擬化方式的不同之處,可見容器是在作業系統層面上實現虛擬化,直接復用本地主機的作業系統,而傳統方式則是在硬體層面實現。

首先,docker 容器的啟動可以在秒級實現,這相比傳統的虛擬機器方式要快得多。 其次,docker 對系統資源的利用率很高,一台主機上可以同時執行數千個 docker 容器。

容器除了執行其中應用外,基本不消耗額外的系統資源,使得應用的效能很高,同時系統的開銷盡量小。傳統虛擬機器方式執行 10 個不同的應用就要起 10 個虛擬機器,而docker 只需要啟動 10 個隔離的應用即可。

具體說來,docker 在如下幾個方面具有較大的優勢。

1) 更快速的交付和部署

對開發和運維(devop)人員來說,最希望的就是一次建立或配置,可以在任意地方正常執行。

開發者可以使用乙個標準的映象來構建一套開發容器,開發完成之後,運維人員可以直接使用這個容器來部署**。 docker 可以快速建立容器,快速迭代應用程式,並讓整個過程全程可見,使團隊中的其他成員更容易理解應用程式是如何建立和工作的。 docker 容器很輕很快!容器的啟動時間是秒級的,大量地節約開發、測試、部署的時間。

2) 更高效的虛擬化

docker 容器的執行不需要額外的 hypervisor 支援,它是核心級的虛擬化,因此可以實現更高的效能和效率。

3) 更輕鬆的遷移和擴充套件

docker 容器幾乎可以在任意的平台上執行,包括物理機、虛擬機器、公有雲、私有雲、個人電腦、伺服器等。 這種相容性可以讓使用者把乙個應用程式從乙個平台直接遷移到另外乙個。

4) 更簡單的管理

使用 docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分發和更新,從而實現自動化並且高效的管理。

5) 對比傳統虛擬機器總結

特性
容器
虛擬機器
啟動秒級

分鐘級硬碟使用

一般為 mb

一般為 gb

效能接近原生

弱於系統支援量

單機支援上千個容器

一般幾十個

1) 通過系統自帶包安裝

ubuntu 14.04 版本系統中已經自帶了 docker 包,可以直接安裝。

sudo apt-get update

sudo apt-get install -y docker.io

sudo

ln -sf /usr/bin/docker.io /usr/local/bin/docker

sudo

sed -i '

$acomplete -f _docker docker

' /etc/bash_completion.d/docker.io

如果使用作業系統自帶包安裝 docker,目前安裝的版本是比較舊的 1.0.0。 要安裝更新的版本,可以通過使用 docker 源的方式。之後要講到的 docker 加速器需要1.3.2版本以上,所以建議直接使用 docker 源的方式安裝最新版本。

2) 通過docker源安裝最新版本

要安裝最新的 docker 版本,首先需要安裝 apt-transport-https 支援,之後通過新增源來安裝。

docker 的

安裝資源檔案

存放在amazon s3,會間歇性連線失敗。所以安裝docker的時候,會比較慢。 你可以通過執行下面的命令,高速安裝docker。

1) 映象(image)

docker 映象就是乙個唯讀的模板。

例如:乙個映象可以包含乙個完整的 ubuntu 作業系統環境,裡面僅安裝了 apache 或使用者需要的其它應用程式。

2) 容器(container)

docker 利用容器來執行應用。

容器是從映象建立的執行例項。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平台。可以把容器看做是乙個簡易版的 linux 環境(包括root使用者許可權、程序空間、使用者空間和網路空間等)和執行在其中的應用程式。

*注:映象是唯讀的,容器在啟動的時候建立一層可寫層作為最上層。

3) 倉庫(repository)

倉庫是集中存放映象檔案的場所。有時候會把倉庫和倉庫註冊伺服器(registry)混為一談,並不嚴格區分。實際上,倉庫註冊伺服器上往往存放著多個倉庫,每個倉庫中又包含了多個映象,每個映象有不同的標籤(tag)。

*注:docker 倉庫的概念跟 git 類似,註冊伺服器可以理解為 github 這樣的託管服務。

該指令碼可以將--registry-mirror加入到你的docker配置檔案/etc/default/docker中。適用於ubuntu14.04,其他版本可能有細微不同。其中×××××需要替換為你自己的位址。

嘗試去拉映象會發現速度變快很多:

docker pull ubuntu:14.04
mirror是docker的官方機制,它是registry的一種特殊型別,在部署了registry之後,需要開啟mirror模式並做一定的配置。具體的流程如下:

registry中文文件:

docker中文指南:

daocloud 宣布 docker hub mirror 服務永久免費:

Docker介紹和安裝

官網 www.docker.com github 開源的容器引擎,可以讓開發者打包應用以及依賴的庫,然後發布到任何流行的linux發行版上,移植很方便 由go語言編寫,基於apache2.0協議發布 基於linux kernel,要想在win下執行需要借助乙個vm 虛擬機器 來實現 自2013年開始...

Docker 簡單介紹和安裝

這裡安裝以centos7.0為例,其他安裝可參考菜鳥或者官網 1.解除安裝老版本docker sudo yum remove docker docker client docker client latest docker common docker latest docker latest log...

Docker安裝和基本使用和介紹

1.為什麼tomcat由原來的10m左右變成了現在的500m?因為現在的tomcat不僅僅是乙個tomcat,還包含了執行時需要的環境 jdk centos,所以變大了。2.為什麼centos由原來的3.6g變成了現在的203m?由於是在虛擬機器的基礎上建立虛擬機器,所以可以復用bootfs,包變小...