【docker系列】docker深入浅出之安装教程
Docker簡(jiǎn)介
Docker 是一個(gè)開(kāi)源的應(yīng)用容器引擎,基于 GO語(yǔ)言并遵從Apache2.0協(xié)議開(kāi)源。
Docker 可以讓開(kāi)發(fā)者打包他們的應(yīng)用以及依賴包到一個(gè)輕量級(jí)、可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實(shí)現(xiàn)虛擬化。
容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口(類似 iPhone 的 app),更重要的是容器性能開(kāi)銷極低。
Docker 從 17.03 版本之后分為 CE(Community Edition: 社區(qū)版) 和 EE(Enterprise Edition: 企業(yè)版),我們用社區(qū)版就可以了。
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)來(lái)搭建自己的PaaS環(huán)境。
Docker 的優(yōu)點(diǎn)
-
1、簡(jiǎn)化程序:
Docker 讓開(kāi)發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,便可以實(shí)現(xiàn)虛擬化。Docker改變了虛擬化的方式,使開(kāi)發(fā)者可以直接將自己的成果放入Docker中進(jìn)行管理。方便快捷已經(jīng)是 Docker的最大優(yōu)勢(shì),過(guò)去需要用數(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é)省開(kāi)支:
一方面,云計(jì)算時(shí)代到來(lái),使開(kāi)發(fā)者不必為了追求效果而配置高額的硬件,Docker 改變了高性能必然高價(jià)格的思維定勢(shì)。Docker 與云的結(jié)合,讓云空間得到更充分的利用。不僅解決了硬件管理的問(wèn)題,也改變了虛擬化的方式。
相關(guān)鏈接
Docker 官網(wǎng):http://www.docker.com
Github Docker 源碼:https://github.com/docker/docker
Docker 架構(gòu)
Docker 使用客戶端-服務(wù)器 (C/S) 架構(gòu)模式,使用遠(yuǎn)程API來(lái)管理和創(chuàng)建Docker容器。
Docker 容器通過(guò) Docker 鏡像來(lái)創(chuàng)建。
容器與鏡像的關(guān)系類似于面向?qū)ο缶幊讨械膶?duì)象與類。
| 容器 | 對(duì)象 |
| 鏡像 | 類 |
| Docker 鏡像(Images) | Docker 鏡像是用于創(chuàng)建 Docker 容器的模板。 |
| Docker 容器(Container) | 容器是獨(dú)立運(yùn)行的一個(gè)或一組應(yīng)用。 |
| Docker 客戶端(Client) | Docker 客戶端通過(guò)命令行或者其他工具使用 Docker API (https://docs.docker.com/reference/api/docker_remote_api) 與 Docker 的守護(hù)進(jìn)程通信。 |
| Docker 主機(jī)(Host) | 一個(gè)物理或者虛擬的機(jī)器用于執(zhí)行 Docker 守護(hù)進(jìn)程和容器。 |
| Docker 倉(cāng)庫(kù)(Registry) | Docker 倉(cāng)庫(kù)用來(lái)保存鏡像,可以理解為代碼控制中的代碼倉(cāng)庫(kù)。 Docker Hub(https://hub.docker.com) 提供了龐大的鏡像集合供使用。 ? |
| Docker Machine | Docker Machine是一個(gè)簡(jiǎn)化Docker安裝的命令行工具,通過(guò)一個(gè)簡(jiǎn)單的命令行即可在相應(yīng)的平臺(tái)上安裝Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。 |
?
Ubuntu Docker 安裝
Docker 支持以下的 Ubuntu 版本:
- Ubuntu Precise 12.04 (LTS)
- Ubuntu Trusty 14.04 (LTS)
- Ubuntu Wily 15.10
- Xenial 16.04 (LTS)
- 其他更新的版本……
如果安裝 Docker ce 需要 16.04 及以上版本,安裝步驟可以查看筆記部分:
- Cosmic 18.10
- Bionic 18.04 (LTS)
- Xenial 16.04 (LTS)
前提條件
Docker 要求 Ubuntu 系統(tǒng)的內(nèi)核版本高于 3.10 ,查看本頁(yè)面的前提條件來(lái)驗(yàn)證你的 Ubuntu 版本是否支持 Docker。
通過(guò) uname -r 命令查看你當(dāng)前的內(nèi)核版本
? ? ? ??
使用腳本安裝 Docker
1、獲取最新版本的 Docker 安裝包
sudo wget -qO- https://get.docker.com/ | sh
2、啟動(dòng)docker 后臺(tái)服務(wù)
sudo service docker start
3、測(cè)試運(yùn)行hello-world
docker run hello-world
鏡像加速
鑒于國(guó)內(nèi)網(wǎng)絡(luò)問(wèn)題,后續(xù)拉取 Docker 鏡像十分緩慢,我們可以需要配置加速器來(lái)解決,我使用的是網(wǎng)易的鏡像地址:http://hub-mirror.c.163.com。
新版的 Docker 使用 /etc/docker/daemon.json(Linux) 或者 %programdata%\docker\config\daemon.json(Windows) 來(lái)配置 Daemon。
請(qǐng)?jiān)谠撆渲梦募屑尤?#xff08;沒(méi)有該文件的話,請(qǐng)先建一個(gè)):
{"registry-mirrors": ["http://hub-mirror.c.163.com"] }其他方式安裝流程:
1.更換國(guó)內(nèi)軟件源,推薦中國(guó)科技大學(xué)的源,穩(wěn)定速度快(可選)
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list sudo apt update2.安裝需要的包
sudo apt install apt-transport-https ca-certificates software-properties-common curl3.添加 GPG 密鑰,并添加 Docker-ce 軟件源,這里還是以中國(guó)科技大學(xué)的 Docker-ce 源為例
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \ $(lsb_release -cs) stable"4.添加成功后更新軟件包緩存
sudo apt update5.安裝 Docker-ce
sudo apt install docker-ce6.設(shè)置開(kāi)機(jī)自啟動(dòng)并啟動(dòng) Docker-ce(安裝成功后默認(rèn)已設(shè)置并啟動(dòng),可忽略)
sudo systemctl enable docker sudo systemctl start docker7.測(cè)試運(yùn)行
sudo docker run hello-world8.添加當(dāng)前用戶到 docker 用戶組,可以不用 sudo 運(yùn)行 docker(可選)
sudo groupadd docker sudo usermod -aG docker $USER9.測(cè)試添加用戶組(可選)
docker run hello-worldCentOS Docker 安裝
Docker支持以下的CentOS版本:
- CentOS 7 (64-bit)
- CentOS 6.5 (64-bit)?或更高的版本
前提條件
目前,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 或者更高版本。
使用 yum 安裝(CentOS 7下)
Docker 要求 CentOS 系統(tǒng)的內(nèi)核版本高于 3.10 ,查看本頁(yè)面的前提條件來(lái)驗(yàn)證你的CentOS 版本是否支持 Docker 。
通過(guò)?uname -r?命令查看你當(dāng)前的內(nèi)核版本
uname -r
安裝 Docker
從 2017 年 3 月開(kāi)始 docker 在原來(lái)的基礎(chǔ)上分為兩個(gè)分支版本: Docker CE 和 Docker EE。
Docker CE 即社區(qū)免費(fèi)版,Docker EE 即企業(yè)版,強(qiáng)調(diào)安全,但需付費(fèi)使用。
本文介紹 Docker CE 的安裝使用。
移除舊的版本:
$ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine安裝一些必要的系統(tǒng)工具:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2添加軟件源信息:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo更新 yum 緩存:
sudo yum makecache fast安裝 Docker-ce:
sudo yum -y install docker-ce啟動(dòng) Docker 后臺(tái)服務(wù)
sudo systemctl start docker測(cè)試運(yùn)行 hello-world
docker run hello-world
?
由于本地沒(méi)有hello-world這個(gè)鏡像,所以會(huì)下載一個(gè)hello-world的鏡像,并在容器內(nèi)運(yùn)行。
使用腳本安裝 Docker
1、使用?sudo?或?root?權(quán)限登錄 Centos。
2、確保 yum 包更新到最新。
$ sudo yum update3、執(zhí)行 Docker 安裝腳本。
$ curl -fsSL https://get.docker.com -o get-docker.sh $ sudo sh get-docker.sh執(zhí)行這個(gè)腳本會(huì)添加?docker.repo?源并安裝 Docker。
4、啟動(dòng) Docker 進(jìn)程。
sudo systemctl start docker5、驗(yàn)證?docker?是否安裝成功并在容器中執(zhí)行一個(gè)測(cè)試的鏡像。
$ sudo docker run hello-world docker ps到此,Docker 在 CentOS 系統(tǒng)的安裝完成。
鏡像加速
鑒于國(guó)內(nèi)網(wǎng)絡(luò)問(wèn)題,后續(xù)拉取 Docker 鏡像十分緩慢,我們可以需要配置加速器來(lái)解決,我使用的是網(wǎng)易的鏡像地址:http://hub-mirror.c.163.com。
新版的 Docker 使用 /etc/docker/daemon.json(Linux) 或者 %programdata%\docker\config\daemon.json(Windows) 來(lái)配置 Daemon。
請(qǐng)?jiān)谠撆渲梦募屑尤?#xff08;沒(méi)有該文件的話,請(qǐng)先建一個(gè)):
{"registry-mirrors": ["http://hub-mirror.c.163.com"] }刪除 Docker CE
執(zhí)行以下命令來(lái)刪除 Docker CE:
$ sudo yum remove docker-ce $ sudo rm -rf /var/lib/dockerMacOS Docker 安裝
使用 Homebrew 安裝
macOS 我們可以使用 Homebrew 來(lái)安裝 Docker。
Homebrew 的 Cask 已經(jīng)支持 Docker for Mac,因此可以很方便的使用 Homebrew Cask 來(lái)進(jìn)行安裝:
$ brew cask install docker==> Creating Caskroom at /usr/local/Caskroom ==> We'll set permissions properly so we won't need sudo in the future Password: # 輸入 macOS 密碼 ==> Satisfying dependencies ==> Downloading https://download.docker.com/mac/stable/21090/Docker.dmg ######################################################################## 100.0% ==> Verifying checksum for Cask docker ==> Installing Cask docker ==> Moving App 'Docker.app' to '/Applications/Docker.app'. 🍺 docker was successfully installed!在載入 Docker app 后,點(diǎn)擊 Next,可能會(huì)詢問(wèn)你的 macOS 登陸密碼,你輸入即可。之后會(huì)彈出一個(gè) Docker 運(yùn)行的提示窗口,狀態(tài)欄上也有有個(gè)小鯨魚(yú)的圖標(biāo)()。
手動(dòng)下載安裝
如果需要手動(dòng)下載,請(qǐng)點(diǎn)擊以下鏈接下載?Stable?或?Edge?版本的 Docker for Mac。
如同 macOS 其它軟件一樣,安裝也非常簡(jiǎn)單,雙擊下載的 .dmg 文件,然后將鯨魚(yú)圖標(biāo)拖拽到 Application 文件夾即可。
從應(yīng)用中找到 Docker 圖標(biāo)并點(diǎn)擊運(yùn)行。可能會(huì)詢問(wèn) macOS 的登陸密碼,輸入即可。
點(diǎn)擊頂部狀態(tài)欄中的鯨魚(yú)圖標(biāo)會(huì)彈出操作菜單。
第一次點(diǎn)擊圖標(biāo),可能會(huì)看到這個(gè)安裝成功的界面,點(diǎn)擊 "Got it!" 可以關(guān)閉這個(gè)窗口。
啟動(dòng)終端后,通過(guò)命令可以檢查安裝后的 Docker 版本。
$ docker --version Docker version 17.09.1-ce, build 19e2cf6鏡像加速
鑒于國(guó)內(nèi)網(wǎng)絡(luò)問(wèn)題,后續(xù)拉取 Docker 鏡像十分緩慢,我們可以需要配置加速器來(lái)解決,我使用的是網(wǎng)易的鏡像地址:http://hub-mirror.c.163.com。
在任務(wù)欄點(diǎn)擊 Docker for mac 應(yīng)用圖標(biāo) -> Perferences... -> Daemon -> Registry mirrors。在列表中填寫加速器地址即可。修改完成之后,點(diǎn)擊 Apply & Restart 按鈕,Docker 就會(huì)重啟并應(yīng)用配置的鏡像地址了。
之后我們可以通過(guò) docker info 來(lái)查看是否配置成功。
$ docker info ... Registry Mirrors:http://hub-mirror.c.163.com Live Restore Enabled: false?
總結(jié)
以上是生活随笔為你收集整理的【docker系列】docker深入浅出之安装教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 远程控制与Nvidia显卡驱动和CUDA
- 下一篇: 大学生礼仪6