一、Docker 簡介
Docker 是一個開源的容器引擎,它有助于更快地交付應(yīng)用。Docker 可將應(yīng)用程序和基礎(chǔ)設(shè)施層隔離,并且能將基礎(chǔ)設(shè)施當(dāng)作程序一樣進(jìn)行管理。使用 Docker , 可更快地打包、測試以及部署應(yīng)用程序,并可以縮短從編寫到部署運行代碼的周期。
Docker 的官方網(wǎng)址鏈接:https://www.docker.com
Docker 的 GitHub : http://github.com/docker/docker
二、Docker 的架構(gòu)
Docker 架構(gòu)包含的主要組件:
- Docker daemon ( Docker 守護(hù)進(jìn)程 )
Docker daemon 是一個運行在宿主機(jī) (DOCKER_HOST) 的后臺進(jìn)程。可通過 Docker 客戶端與之通信。
- Client (Docker 客戶端)
Docker 客戶端是 Docker 的用戶界面,它可以接受用戶命令和配置標(biāo)識,并與 Docker daemon 通信。
- Images ( Docker 鏡像 )
Docker 鏡像是一個只讀模板,它包含創(chuàng)建 Docker 容器說明。它和系統(tǒng)安裝光盤有點像 —— 使用系統(tǒng)安裝光盤可以安裝系統(tǒng),同理,使用 Docker 鏡像可以運行 Docker 鏡像中的程序。
- Container (容器)
容器是鏡像的可運行實例。鏡像和容器的關(guān)系有點類似于面向?qū)ο笾校惡蛯ο蟮年P(guān)系。可通過 Docker API 或 CLI 命令來啟動、停止和移動、刪除容器。
- Registry ( 注冊 )
Docker Registry 是一個集中存儲與分發(fā)鏡像的服務(wù)。構(gòu)建完 Docker 鏡像后,就可在當(dāng)前宿主機(jī)上運行。但如果想要在其他機(jī)器上運行這個鏡像,就需要手動復(fù)制。此時,就可借助 Docker Registry 來避免鏡像的手動復(fù)制。
一個 Docker Registry 可包含多個 Docker 倉庫,每個倉庫可包含多個鏡像標(biāo)簽,每個標(biāo)簽對應(yīng)一個 Docker 鏡像。這跟 Maven 的倉庫有點類似,如果把 Docker Registry 比作 Maven 倉庫的話,那么 Docker 倉庫就可理解為某 jar 包的路徑,而鏡像標(biāo)簽則可理解為 jar 包的版本號。Docker Registry 可分為公有 Docker Registry 和私有 Docker Registry 。最常用的 Docker Registry 莫過于官方的 Docker Hub, 這也是默認(rèn)的 Docker Registry 。Docker Hub 上存放著大量優(yōu)秀的鏡像,可使用 Docker 命令下載并使用。
三、Docker準(zhǔn)備
Docker 官方建議將 Docker 運行在 Linux 操作系統(tǒng)上。當(dāng)然,Docker 也支持運行在其他平臺,例如 Windows、MacOS 等。
安裝參考官方文檔:http://docs.docker.com/engine/installation/
系統(tǒng)要求
Docker 運行在 CentOS 7.X 之上 (不支持內(nèi)核在 3.8 以下的老版本)
通過以下命令查看您的 CentOS 內(nèi)核
uname -r
需要保證Docker安裝在 64 位平臺
- 移除非官方軟件包
Red Hat 操作系統(tǒng)包含了一個舊版本的 Docker 軟件包,該舊版本軟件包的名稱是 “ docker ”,而新版本是 “ docker-engine ”。因此,如已安裝該軟件包,那么需要執(zhí)行以下命令移除。
$ sudo yum remove docker
Tips:執(zhí)行該命令只會移除舊版本的 Docker , /var/lib/docker 目錄中的內(nèi)容不會被刪除,因此,舊版本 Docker 所創(chuàng)建的鏡像、容器、卷等都會保留下來。
- 卸載舊版本
$ sudo yum remove docker \
- 設(shè)置 Yum 源
Docker 有多種安裝方式,例如 Yum 安裝、PRM 包安裝、Shell安裝等。以下以 Yum 安裝方式進(jìn)行, Docker 分 Docker EE 和 Docker CE 兩種版本(EE:企業(yè)版,收費的;CE:社區(qū)版,不收費)。
1、安裝 yum-utils , 這樣就能使用 yum-config-manager 工具設(shè)置 Yum 源。
$ sudo yum install -y yum-utils \
2、執(zhí)行以下命令,添加 Docker 的 Yum 源。
$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、【可選】啟用測試倉庫。測試倉庫包含在 docker.repo 文件中,但默認(rèn)情況下禁用的。
如需啟用測試倉庫,可使用以下命令:
$ sudo yum-config-manager --enable docker-ce-edge
如想要禁用測試倉庫,可執(zhí)行以下命令:
$ sudo yum-config-manager --disable docker-ce-edge
四、安裝Docker
1、更新 Yum 包的索引
$ sudo yum makecache fast
2、安裝最新版本的 Docker
$ sudo yum install docker-ce
3、在生產(chǎn)系統(tǒng)中,可能需要安裝指定版本的 Docker ,而并不總是安裝最新的版本。
執(zhí)行以下命令,即可列出可用的 Docker 版本
$ yum list docker-ce --showduplicates | sort -r
列出 Docker 版本后,可使用以下命令安裝指定版本的 Docker 。
$ sudo yum install
例如:
$ sudo yum -y install docker-ce-17.09.0.ce
4、啟動 Docker
$ sudo systemctl start docker
5、執(zhí)行以下命令,驗證安裝是否正確
$ sudo docker run hello-world
6、查看 Docker 版本
docker version
五、卸載 Docker
1、卸載 Docker 軟件包
$ sudo yum remove docker-ce
2、如需刪除鏡像、容器、卷以及自定義的配置文件,可執(zhí)行以下命令
$ sudo rm -rf /var/lib/docker
六、配置鏡像加速器
國內(nèi)訪問 Docker Hub 的速度很不穩(wěn)定,有時甚至出現(xiàn)連接不上的情況。為 Docker 配置鏡像加速器,從而解決這個問題。目前國內(nèi)很多云服務(wù)商都提供了鏡像加速的服務(wù)。常用的鏡像加速器有:
阿里云加速器、DaoCloud加速器等。
以阿里云加速器為例:
1、注冊阿里云賬號,即可在阿里云控制臺
(https://cr.console.aliyun.com/#/accelerator)
2、按照提示說明,即可配置鏡像加速器。
七、ipv4轉(zhuǎn)向配置
若啟動docker的時候報錯:WARNING IPv4 forwarding is disabled. Networking will not work
解決方案:
vi /etc/sysctl.conf
添加配置
net.ipv4.ip_forward=1
重啟
systemctl restart network
查看是否成功
sysctl net.ipv4.ip_forward
如果返回為net.ipv4.ip_forward = 1則表示成功了