隨著計算機近年來的蓬勃發展,產生了大量優秀系統和軟件。軟件開發人員可以自由選擇各種軟件應用。但同時帶來的問題就是需要維護一個非常龐大的開發、測試和生成環境。面對這種情況,Docker容器技術橫空出世,提供了非常簡單、靈活、高效的解決方案,不再需要過多的改變現有的使用習慣,就可以和已有的工具配合使用。因此,因此掌握Docker也是途徑云計算的必經之路。
Docker作為開源社區最火爆的項目,它是在Linux容器里運行應用的開源工具,是一種輕量級的“虛擬機”,docker的全部源代碼都在https://github.com/docker 進行相關維護,其官網是:https://www.docker.com 。
Docker的設計宗旨:通過對應用組件的封裝、發布、部署、運行等生命周期的管理,達到應用組件級別的一次封裝,到處運行的目的。這里的組件,既可以是一個應用,也可以是一套服務,甚至是一個完整的操作系統。
作為一種輕量級的虛擬化方案,Docker與傳統虛擬機相比有顯著的優勢。
| 特性 | Docker容器 | 傳統虛擬機 |
|---|---|---|
| 啟動速度 | 秒級 | 分鐘級 |
| 計算能力損耗 | 幾乎無 | 損耗50%左右 |
| 性能 | 接近原生 | 弱于 |
| 系統支持量(單機) | 上千個 | 幾十個 |
| 隔離性 | 資源限制 | 完全隔離 |
Docker之所以擁有眾多優勢,與操作系統虛擬化自身的特點是分不開的。傳統虛擬機需要有額外的虛擬機管理程序和虛擬操作系統層,而Docker容器是直接在操作系統層面之上實現的虛擬化。
如圖:

現在需要能方便地創建運行在云平臺上的應用,必須要脫離底層的硬件,同時還需要任何時間、地點可獲取這些資源,這正是Docker所能提供的。
Docker的容器技術可以在一條主句上輕松為任何應用創建一個輕量級的、可移植的、自給自足的容器。通過這種容器打包應用程序,意味著簡化了重新部署、調試這些瑣碎的重復工作,極大地提高了工作效率。
比如:服務器從騰訊云遷移到阿里云,如果采用了Docker容器技術,遷移只需要在新的服務器上啟動需要的容器即可。
鏡像是創建docker容器的基礎,docker鏡像類似于虛擬機鏡像,可以將它理解為一個面向docker引擎的只讀模塊,包含文件系統。
Docker提供了簡單的機制來創建和更新現有的進行,用戶也可以從網上下載已經做好的應用進行來直接使用。
容器是從鏡像創建的應用運行實例,容器之間是相互隔離、互不可見的??梢园讶萜骺醋鲆粋€簡易版的linux系統環境(包括root權限、進程空間、用戶空間和網絡空間等),以及運行在這個環境上的應用打包而成的應用盒子。
Docker倉庫是用來集中保存鏡像的地方,當創建了自己的鏡像之后,可以使用命令將它上傳到公有倉庫或私有倉庫,這樣一來當下次要在另外一條機器上使用這個鏡像是,只需從倉庫拉取下來即可!
倉庫注冊服務器是存放倉庫的地方,其中包含了多個倉庫,每個倉庫集中存放某一類鏡像,并且使用不同的標簽來區分它們。目前最大的公有倉庫Docker Hub,存放了數量龐大的鏡像提供用戶下載使用。
本次使用CentOS 7.5版本,安裝的Docker為18.09版本!
[root@docker ~]# systemctl stop firewalld && setenforce 0
#關閉防火墻與SELinux,如果不關閉,會阻礙docker的正常啟動
[root@docker ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
#安裝docker所需依賴
[root@docker ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#獲取阿里云的docker-ce的repo配置文件
[root@docker ~]# yum makecache #建立yum元數據緩存
[root@docker ~]# yum repolist #列出yum倉庫的docker可用軟件包
...................... //省略部分內容
docker-ce-stable/x86_64 Docker CE Stable - x86_64 65
#確認docker.....這一列有可用的包,我這里顯示的是65個(但是,一定不可以為0)
[root@docker ~]# yum list docker-ce.x86_64 --showduplicates
#/查看docker可用版本,其中stable表示為穩定版
[root@docker ~]# yum install -y docker-ce-18.09.0-3.el7 docker-ce-cli-18.09.0-3.el7 containerd.io-1.2.0-3.el7
#需安裝docker-ce、docker-ce-cli、containerd.io這三個工具
#其中docker-ce、docker-ce-cli需指定版本
[root@docker ~]# systemctl daemon-reload
[root@docker ~]# systemctl start docker
#啟動docker
[root@docker ~]# docker -v #查看docker-ce-cli的版本
Docker version 18.09.0, build 4d60db4
[root@docker ~]# docker version #查看docker的詳細信息
Client:
Version: 18.09.0
API version: 1.39
Go version: go1.10.4
Git commit: 4d60db4
Built: Wed Nov 7 00:48:22 2018
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.0
API version: 1.39 (minimum version 1.12)
Go version: go1.10.4
Git commit: 4d60db4
Built: Wed Nov 7 00:19:08 2018
OS/Arch: linux/amd64
Experimental: false
如果是最小化安裝的docker,則需執行以下命令,便于支持Docker命令自動補全!
[root@docker ~]# yum -y install bash-completion //支持docker命令自動補全,以下命令可以不輸入
[root@docker~]# curl -L https://raw.githubusercontent.com/docker/compose/1.24.1/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
//下載支持docker命令自動補全的腳本文件
[root@docker ~]# source /etc/bash_completion.d/docker-compose
//執行腳本之后,切換bash即可生效
采用阿里云的鏡像加速器!
[root@docker ~]# tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://5zntnq0h.mirror.aliyuncs.com"]
}
EOF
[root@docker ~]# systemctl daemon-reload && systemctl restart docker
#更改完成后,需重啟docker
[root@docker ~]# cat /etc/docker/daemon.json
#這個就是和加速相關的文件,json文件的是以鍵值對的格式存儲的
{
"registry-mirrors": ["https://5zntnq0h.mirror.aliyuncs.com"]
}
———————— 本文至此結束,感謝閱讀 ————————
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。