docker 是一個(gè)開源的應(yīng)用容器引擎,基于go 語言并遵從apache2.0協(xié)議開源。
docker 可以讓開發(fā)者打包他們的應(yīng)用以及依賴包到一個(gè)輕量級(jí)、可移植的容器中,然后發(fā)布到任何流行的 linux 機(jī)器上,也可以實(shí)現(xiàn)虛擬化。
容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口(類似 iphone 的 app),更重要的是容器性能開銷極低。
docker的應(yīng)用場(chǎng)景
- web 應(yīng)用的自動(dòng)化打包和發(fā)布。
- 自動(dòng)化測(cè)試和持續(xù)集成、發(fā)布。
- 在服務(wù)型環(huán)境中部署和調(diào)整數(shù)據(jù)庫(kù)或其他的后臺(tái)應(yīng)用。
- 從頭編譯或者擴(kuò)展現(xiàn)有的openshift或cloud foundry平臺(tái)來搭建自己的paas環(huán)境。
docker的優(yōu)點(diǎn)
1、簡(jiǎn)化程序:
docker 讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的 linux 機(jī)器上,便可以實(shí)現(xiàn)虛擬化。docker改變了虛擬化的方式,使開發(fā)者可以直接將自己的成果放入docker中進(jìn)行管理。方便快捷已經(jīng)是 docker的最大優(yōu)勢(shì),過去需要用數(shù)天乃至數(shù)周的 任務(wù),在docker容器的處理下,只需要數(shù)秒就能完成。
2、避免選擇恐懼癥:
如果你有選擇恐懼癥,還是資深患者。docker 幫你打包你的糾結(jié)!比如 docker 鏡像;docker 鏡像中包含了運(yùn)行環(huán)境和配置,所以 docker 可以簡(jiǎn)化部署多種應(yīng)用實(shí)例工作。比如 web 應(yīng)用、后臺(tái)應(yīng)用、數(shù)據(jù)庫(kù)應(yīng)用、大數(shù)據(jù)應(yīng)用比如 hadoop 集群、消息隊(duì)列等等都可以打包成一個(gè)鏡像部署。
3、節(jié)省開支:
一方面,云計(jì)算時(shí)代到來,使開發(fā)者不必為了追求效果而配置高額的硬件,docker 改變了高性能必然高價(jià)格的思維定勢(shì)。docker 與云的結(jié)合,讓云空間得到更充分的利用。不僅解決了硬件管理的問題,也改變了虛擬化的方式。
1.docker的安裝:
docker支持以下的centos版本:
- centos 7 (64-bit)
- centos 6.5 (64-bit)或更高的版本
1.2前提條件
目前,centos 僅發(fā)行版本中的內(nèi)核支持 docker。
docker 運(yùn)行在 centos 7 上,要求系統(tǒng)為64位、系統(tǒng)內(nèi)核版本為 3.10 以上。
docker 運(yùn)行在centos-6.5或更高的版本的 centos 上,要求系統(tǒng)為64位、系統(tǒng)內(nèi)核版本為 2.6.32-431 或者更高版本。
我的操作系統(tǒng)版本:
centos7官方英文安裝docker CE說明:https://docs.docker.com/install/linux/docker-ce/centos/
centos7中文安裝docker CE說明https://docs.docker-cn.com/engine/installation/linux/docker-ce/centos/
docker 軟件包和依賴包已經(jīng)包含在默認(rèn)的 centos-extras 軟件源里,可以更新yum源選擇yum install的方法安裝,也可以選擇下載rpm安裝包
官方下載地址:https://download.docker.com/linux/centos/7/x86_64/stable/packages/
您可以根據(jù)您的需要以不同的方式安裝docker ce:
大多數(shù)用戶設(shè)置docker的存儲(chǔ)庫(kù)并從中進(jìn)行安裝,以便安裝和升級(jí)任務(wù)。這是推薦的方法。
有些用戶下載rpm軟件包并手動(dòng)安裝,并完全手動(dòng)管理升級(jí)。這對(duì)于在無法訪問互聯(lián)網(wǎng)的空隙系統(tǒng)上安裝docker等情況很有用。
1.3使用wget 命令進(jìn)行下載rpm包
創(chuàng)建一個(gè)downloads文件夾,然后使用wget命令進(jìn)行下載
1
2
|
[root@sungeek downloads] # wget https://download.docker.com/linux/centos/7/x86_64/stable/packages/docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm [root@sungeek downloads] # yum install docker-ce-18.03.0.ce-1.el7.centos.x86_64.rpm |
1.4使用存儲(chǔ)庫(kù)進(jìn)行安裝(推薦方法-不過國(guó)外存儲(chǔ)庫(kù)國(guó)內(nèi)拉取很慢)
首次在新主機(jī)上安裝docker ce之前,需要設(shè)置docker存儲(chǔ)庫(kù)。之后,您可以從存儲(chǔ)庫(kù)安裝和更新docker。
設(shè)置存儲(chǔ)庫(kù)
1.安裝所需的包。yum-utils
提供了yum-config-manager
效用,并device-mapper-persistent-data
和lvm2
由需要devicemapper
存儲(chǔ)驅(qū)動(dòng)程序。
1
2
3
|
[root@sungeek ~] # yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 |
2.使用以下命令設(shè)置stable的存儲(chǔ)庫(kù)。即使您想從edge或test存儲(chǔ)庫(kù)安裝構(gòu)建,也總是需要stable的存儲(chǔ)庫(kù)。
1
2
3
|
[root@sungeek ~] # yum-config-manager \ --add-repo \ https: //download .docker.com /linux/centos/docker-ce .repo |
3.可選:?jiǎn)⒂胑dge和test存儲(chǔ)庫(kù)。這些存儲(chǔ)庫(kù)包含在docker.repo
上面的文件中,但默認(rèn)情況下處于禁用狀態(tài)。您可以將它們與穩(wěn)定的存儲(chǔ)庫(kù)一起啟用。
1
2
|
[root@sungeek ~] # yum-config-manager --enable docker-ce-edge [root@sungeek ~] # yum-config-manager --enable docker-ce-test |
您可以通過使用該標(biāo)志運(yùn)行命令來禁用edge或test存儲(chǔ)庫(kù)。要重新啟用它,請(qǐng)使用標(biāo)志。以下命令禁用邊緣存儲(chǔ)庫(kù)。yum-config-manager
--disable
--enable
1
|
[root@sungeek ~] # yum-config-manager --disable docker-ce-edge |
注意:從docker 17.06開始,穩(wěn)定版本也被推到edge并test版本庫(kù)。
安裝 docker ce-----[我是把服務(wù)器設(shè)置了vpn才能拉取,國(guó)外資源訪問很慢經(jīng)常超時(shí)]
1.更新yum
軟件包索引。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
[root@sungeek ~] # yum makecache fast loaded plugins: fastestmirror, langpacks loading mirror speeds from cached hostfile * base: mirrors.cn99.com * extras: mirrors.shu.edu.cn * updates: mirrors.shu.edu.cn base | 3.6 kb 00:00:00 docker-ce-edge | 2.9 kb 00:00:00 docker-ce-stable | 2.9 kb 00:00:00 docker-ce- test | 2.9 kb 00:00:00 extras | 3.4 kb 00:00:00 updates | 3.4 kb 00:00:00 docker-ce- test /x86_64/primary_db | 47 kb 00:00:00 metadata cache created |
如果這是自添加 docker 鏡像倉(cāng)庫(kù)以來您首次刷新軟件包索引,系統(tǒng)將提示您接受 gpg 密鑰,并且將顯示此密鑰的指紋。驗(yàn)證指紋是否正確,并且在正確的情況下接受此密鑰。指紋應(yīng)匹配060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
。
2.安裝最新版本的 docker ce,或者轉(zhuǎn)至下一步以安裝特定版本。
1
|
[root@sungeek ~] # yum install docker-ce |
警告:如果您啟用了多個(gè) docker 鏡像倉(cāng)庫(kù),進(jìn)行安裝 或者更新而不在yum install
或yum update
命令中指定版本將始終安裝可用的最高版本, 這可能無法滿足您的穩(wěn)定性需求。
3.在生產(chǎn)系統(tǒng)中,您應(yīng)該安裝特定版本的 docker ce,而不是始終使用最新版本。列出可用版本。此示例使用sort -r
命令按版本號(hào)(從最高到最低)對(duì)結(jié)果進(jìn)行排序,并且已被截?cái)唷?/p>
注:此yum list
命令僅顯示二進(jìn)制軟件包。如果還需要顯示 源軟件包,請(qǐng)從軟件包名稱中省略.x86_64
。
1
2
|
[root@sungeek ~] # yum list docker-ce.x86_64 --showduplicates | sort -r docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-stable |
返回的列表取決于啟用了哪些存儲(chǔ)庫(kù),并且特定于您的centos版本(.el7
在此示例中由后綴指示)。
例如,通過完全限定的軟件包名稱(它是軟件包名稱(docker-ce
))和版本字符串(第2列)直到第一個(gè)連字符來安裝特定版本,并用連字符(-
)分隔docker-ce-18.03.0.ce
1
2
|
[root@sungeek ~] # yum install docker-ce-<version> [root@sungeek ~] # yum install docker-ce-docker-ce-18.03.0.ce-1.el7.centos |
升級(jí) docker ce
如需升級(jí) docker ce,首先運(yùn)行yum makecache fast
,然后按照安裝說明執(zhí)行操作,并選擇您要安裝的新版本。
說明:國(guó)內(nèi)通過上面這個(gè)方法會(huì)顯示拉取超時(shí),因?yàn)閲?guó)外資源訪問很慢,經(jīng)常會(huì)超時(shí)!
https://download.docker.com/linux/centos/7/x86_64/test/repodata/f4f313b71260886934a949b16efa15e5032e0b16c4cd26c1e87fdbf935d039d1-primary.sqlite.bz2: [errno 12] timeout on https://download.docker.com/linux/centos/7/x86_64/test/repodata/f4f313b71260886934a949b16efa15e5032e0b16c4cd26c1e87fdbf935d039d1-primary.sqlite.bz2: (28, 'operation timed out after 30001 milliseconds with 0 out of 0 bytes received')
trying other mirror.
1.5 啟動(dòng)docker進(jìn)程
1
2
3
|
[root@localhost downloads] # systemctl start docker [root@localhost downloads] # systemctl status docker [root@localhost downloads] # systemctl enable docker --設(shè)置開機(jī)自啟動(dòng)docker服務(wù) |
1.6驗(yàn)證安裝是否成功
直接輸入docker列出該命令的用法
測(cè)試運(yùn)行第一個(gè)容器:hello-world
由于本地沒有hello-world這個(gè)鏡像,所以會(huì)下載一個(gè)hello-world的鏡像,并在容器內(nèi)運(yùn)行。
2.最常用的幾條命令
2.1使用docker images查看鏡像
1
2
3
|
[root@localhost downloads] # docker images repository tag image id created size docker.io /hello-world latest e38bc07ac18e 2 months ago 1.85 kb |
2.2使用docker ps -a 查看容器
1
2
3
|
[root@localhost downloads] # docker ps -a container id image command created status ports names 3fa4f2de1c01 hello-world "/hello" 4 minutes ago exited (0) 4 minutes ago elastic_lumiere |
docker ps也是最常用的命令,-a :顯示所有的容器,包括未運(yùn)行的。
2.3使用docker logs查看容器控制臺(tái)輸出
獲取容器的日志
docker logs [container]
2.4卸載docker
1.查詢安裝過的包
1
2
3
|
[root@sungeek ~] # yum list installed | grep docker docker-client.x86_64 2:1.13.1-63.git94f4240.el7.centos @extras docker-common.x86_64 2:1.13.1-63.git94f4240.el7.centos @extras |
2.刪除安裝的軟件包
1
2
|
[root@sungeek ~] # yum -y remove docker-client.x86_64 [root@sungeek ~] # yum -y remove docker-common.x86_64 |
3.刪除鏡像/容器等
1
|
[root@sungeek ~] # rm -rf /var/lib/docker/ |
4.輸入docker或docker --version驗(yàn)證是否卸載
1
2
3
4
|
[root@sungeek ~] # docker --version - bash : /usr/bin/docker : no such file or directory [root@sungeek ~] # docker - bash : /usr/bin/docker : no such file or directory |
5.導(dǎo)入加載進(jìn)來覺得不合適可以使用 docker rm 容器id 、 docker rmi 鏡像id 來刪掉。
移除所有的容器和鏡像:
還有更多的命令可以參考docker命令大全:http://www.ythuaji.com.cn/article/132741.html
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。
原文鏈接:http://www.cnblogs.com/Sungeek/p/9182433.html#sg1.3