整 理:bob.zhang
時(shí) 間:2016-11-21 下午
一.特 性
一次封裝到處運(yùn)行蜂大,很好的說明了Docker的跨平臺(tái)和強(qiáng)移植性健提。
1.Docker容器與傳統(tǒng)虛擬機(jī)技術(shù)的特性對比
特 性 | Docker容器 | 傳統(tǒng)虛擬機(jī) |
---|---|---|
啟動(dòng)速度 | 秒級(jí) | 分鐘級(jí) |
硬盤使用 | 一般為MB | 一般為GB |
性能 | 接近原生系統(tǒng) | 相對弱于 |
系統(tǒng)支持量 | 單機(jī)支持上千個(gè)容器 | 一般幾十個(gè) |
2.Docker容器與傳統(tǒng)虛擬機(jī)技術(shù)的不同之處
傳統(tǒng)方式是在硬件層面實(shí)現(xiàn)虛擬化,需要有額外的虛擬機(jī)管理應(yīng)用和虛擬機(jī)操作系統(tǒng)層。
Docker容器是在操作系統(tǒng)層面上實(shí)現(xiàn)虛擬化勃教,直接復(fù)用本機(jī)本地的操作系統(tǒng)淤击,因此更加輕量級(jí),性能方面也更加高效故源。
二.核心概念
- 鏡像
- 容器
- 倉庫
1.鏡像
Docker鏡像(image)類似于虛擬機(jī)鏡像污抬,可以將它理解為一個(gè)面向Docker引擎的只讀模板,包含了文件系統(tǒng)绳军。
例如:一個(gè)鏡像可以只包含一個(gè)完整的Centos操作系統(tǒng)環(huán)境印机,可以把它稱為一個(gè)Centos鏡像,鏡像也可以安裝了Nginx應(yīng)用程序(或者用戶需要的其他軟件)门驾,可以把它稱為一個(gè)Nginx鏡像射赛。
鏡像是創(chuàng)建Docker容器的基礎(chǔ),通過版本管理和增量的文件系統(tǒng)奶是,Docker提供了一套十分簡單的機(jī)制(倉庫)創(chuàng)建和更新現(xiàn)有鏡像楣责,用戶可以從網(wǎng)上下載一個(gè)已經(jīng)做好的應(yīng)用鏡像,并通過命令直接創(chuàng)建Docker容器來使用诫隅。
2.容器
Docker容器(Container)類似于一個(gè)箱子腐魂,可以把容器看做是一個(gè)簡易的Linux系統(tǒng)環(huán)境(其中包括root用戶權(quán)限,進(jìn)程空間逐纬,用戶空間和網(wǎng)路空間等)蛔屹,以及運(yùn)行在其中的應(yīng)用程序打包而成的一個(gè)箱子。Docker利用容器這個(gè)箱子來隔離和運(yùn)行應(yīng)用鏡像豁生。
容器是從鏡像創(chuàng)建的應(yīng)用運(yùn)行實(shí)例兔毒,可以對他進(jìn)行啟動(dòng),停止甸箱,刪除等常規(guī)操作育叁。這些不同的容器之間都是相互隔離互不可見的。鏡像自身是只讀的芍殖,容器從鏡像啟動(dòng)的時(shí)候豪嗽,Docker會(huì)在鏡像的最上層創(chuàng)建一個(gè)可寫層,鏡像本身將保持不變豌骏。
3.倉庫
Docker倉庫(Repostory)類似于代碼的倉庫(與svn龟梦、git、maven等概念類似)是Docker用來集中存放鏡像文件的場所窃躲。
根據(jù)所存儲(chǔ)的鏡像是否公開分享计贰,Docker倉庫又分為:
- 1.公開倉庫
- 2.私有倉庫
顧名思義,公開倉庫就是公共開放的鏡像存儲(chǔ)的地方蒂窒,目前最大的公開倉庫是Dokcer Hub (registry.hub.docker.com)躁倒,存放了大量的鏡像可供下載使用荞怒,國內(nèi)的公開倉庫有aliyun(acs-public-mirror.oss-cn-hangzhou.aliyuncs.com)。私有倉庫是內(nèi)部使用的私有不對外開放的倉庫秧秉,用戶可以內(nèi)部自行搭建褐桌,內(nèi)部分享鏡像,方便快捷的分享專屬環(huán)境的鏡像文件福贞。
三 .Docker的安裝
Docker支持在所有主流操作系統(tǒng)上運(yùn)行(Ubuntu撩嚼、CentOS、Windows以及MacOS)挖帘。我這里只整理Docker在Linux(Ubuntu、CentOS)環(huán)境的安裝恋技,其他平臺(tái)的安裝如有需要自行Google或者度娘拇舀。
- Ubuntu
- CentOS
1.Docker在Ubuntu上的安裝
3.1.1) Ubuntu14.04及以上版本的系統(tǒng)官方軟件源中已經(jīng)自帶了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
使用操作系統(tǒng)自帶包安裝 Docker蜻底,目前安裝的版本是比較舊的版本骄崩。 要安裝更新的版本,可以通過使用 Docker 源的方式薄辅。
安裝最新的 Docker 版本要拂,首先需要安裝 apt-transport-https 支持,之后通過添加源來安裝站楚。
安裝 apt-transport-https 支持
$ sudo apt-get install apt-transport-https
將Docker官方資料庫的訪問Key添加到你本地系統(tǒng)
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80
--recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
$ sudo bash -c "echo deb https://get.docker.io/ubuntu docker main >
/etc/apt/sources.list.d/docker.list"
$ sudo apt-get update
$ sudo apt-get install lxc-docker
或者簡單的一條命令(在系統(tǒng)安裝了curl和apt-transport-https支持的前提下)
curl -sSL https://get.docker.io/ubuntu/ | sudo sh
3.1.2) 如果系統(tǒng)是Ubuntu 14.04之前的較低版本的老系統(tǒng)脱惰,需要先更新系統(tǒng)內(nèi)核才能安裝Docker
升級(jí)內(nèi)核并重啟
$ sudo apt-get update
$ sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring
$ sudo reboot
內(nèi)核升級(jí)完了,然后按照上面步驟繼續(xù)安裝Docker即可窿春。
安裝之后啟動(dòng) Docker 服務(wù)
$ sudo service docker start
2.Docker在CentOS上的安裝
3.2.1) CentOS 6上安裝Docker
官方文檔要求Linux kernel至少3.8以上拉一,且docker只能運(yùn)行在64位的系統(tǒng)中。由于RHEL 6和CentOS 6的內(nèi)核版本為2.6旧乞,因此必須要先升級(jí)內(nèi)核(內(nèi)核升級(jí)過程自行Google蔚润,度娘)。
內(nèi)核升級(jí)結(jié)果確認(rèn)
[root@zyb ~]# uname -r
3.10.5-3.el6.x86_64
[root@zyb ~]#
查看內(nèi)核是否支持aufs:
[root@zyb ~]# grep aufs /proc/filesystems
nodev aufs
[root@zyb ~]#
首先關(guān)閉selinux:
[root@zyb ~]# setenforce 0
[root@zyb ~]# sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config
在Fedora EPEL源中已經(jīng)提供了docker-io包尺栖,下載安裝epel:
[root@zyb ~]# rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-
release-6-8.noarch.rpm
[root@zyb ~]# sed -i 's/^mirrorlist=https/mirrorlist=http/' /etc/yum.repos.d/epel.repo
yum安裝docker-io:
[root@zyb ~]# yum -y install docker-io
安裝之后啟動(dòng) Docker 服務(wù)嫡纠,并讓它隨系統(tǒng)啟動(dòng)自動(dòng)加載,確認(rèn)Docker進(jìn)程:
[root@zyb ~]# chkconfig docker on
[root@zyb ~]# service docker start
Starting docker: [ OK ]
[root@zyb ~]# ps -ef|grep docker
root 70454 1 1 17:13 pts/1 00:00:00 /usr/bin/docker -d
root 70560 28112 0 17:13 pts/1 00:00:00 grep docker
[root@zyb ~]#
支持Docker在CentOS 6上安裝完畢延赌。
3.2.2) CentOS 7上安裝Docker
CentOS7 系統(tǒng)CentOS-Extras庫中已帶 Docker除盏,可以直接安裝:
$ sudo yum install docker
安裝之后啟動(dòng) Docker 服務(wù),并讓它隨系統(tǒng)啟動(dòng)自動(dòng)加載皮胡。
$ sudo service docker start
$ sudo chkconfig docker on