## 一、Docker 簡介
Docker 是一個開源的容器引擎,它有助于更快地交付應用。Docker 可將應用程序和基礎設施層隔離,并且能將基礎設施當作程序一樣進行管理。使用 Docker , 可更快地打包、測試以及部署應用程序,并可以縮短從編寫到部署運行代碼的周期。
* Docker 的官方網址鏈接:[https://www.docker.com](https://www.docker.com/)
* Docker 的 GitHub : http://github.com/docker/docker
<br>
## 二、Docker 的架構
Docker 架構包含的主要組件:
* `Docker daemon ( Docker 守護進程 )`
Docker daemon 是一個運行在宿主機 (DOCKER\_HOST) 的后臺進程。可通過 Docker 客戶端與之通信。
* `Client (Docker 客戶端)`
Docker 客戶端是 Docker 的用戶界面,它可以接受用戶命令和配置標識,并與 Docker daemon 通信。
* `Images ( Docker 鏡像 )`
Docker 鏡像是一個只讀模板,它包含創建 Docker 容器說明。它和系統安裝光盤有點像 —— 使用系統安裝光盤可以安裝系統,同理,使用 Docker 鏡像可以運行 Docker 鏡像中的程序。
* `Container (容器)`
容器是鏡像的可運行實例。鏡像和容器的關系有點類似于面向對象中,類和對象的關系。可通過 Docker API 或 CLI 命令來啟動、停止和移動、刪除容器。
* `Registry ( 注冊 )`
Docker Registry 是一個集中存儲與分發鏡像的服務。構建完 Docker 鏡像后,就可在當前宿主機上運行。但如果想要在其他機器上運行這個鏡像,就需要手動復制。此時,就可借助 Docker Registry 來避免鏡像的手動復制。
一個 Docker Registry 可包含多個 Docker 倉庫,每個倉庫可包含多個鏡像標簽,每個標簽對應一個 Docker 鏡像。這跟 Maven 的倉庫有點類似,如果把 Docker Registry 比作 Maven 倉庫的話,那么 Docker 倉庫就可理解為某 jar 包的路徑,而鏡像標簽則可理解為 jar 包的版本號。
Docker Registry 可分為公有 Docker Registry 和私有 Docker Registry 。最常用的 Docker Registry 莫過于官方的 Docker Hub, 這也是默認的 Docker Registry 。Docker Hub 上存放著大量優秀的鏡像,可使用 Docker 命令下載并使用。
<br>
## 三、Docker準備
Docker 官方建議將 Docker 運行在 Linux 操作系統上。當然,Docker 也支持運行在其他平臺,例如 Windows、MacOS 等。
* 安裝參考官方文檔:[http://docs.docker.com/engine/installation/](http://docs.docker.com/engine/installation/)
### 系統要求
* Docker 運行在 CentOS 7.X 之上 (不支持內核在 3.8 以下的老版本)
### 通過以下命令查看您的 CentOS 內核
`uname -r`
需要保證Docker安裝在 64 位平臺
### 移除非官方軟件包
Red Hat 操作系統包含了一個舊版本的 Docker 軟件包,該舊版本軟件包的名稱是 “ docker ”,而新版本是 “ docker-engine ”。因此,如已安裝該軟件包,那么需要執行以下命令移除。
~~~
$ sudo yum remove docker
~~~
Tips:執行該命令只會移除舊版本的 Docker , /var/lib/docker 目錄中的內容不會被刪除,因此,舊版本 Docker 所創建的鏡像、容器、卷等都會保留下來。
### 卸載舊版本
~~~
$ sudo yum remove docker \
docker-common \
docker-selinux \
docker-engine
~~~
### 設置 Yum 源
Docker 有多種安裝方式,例如 Yum 安裝、PRM 包安裝、Shell安裝等。以下以 Yum 安裝方式進行, Docker 分 Docker EE 和 Docker CE 兩種版本(EE:企業版,收費的;CE:社區版,不收費)。
1、安裝 yum-utils , 這樣就能使用 yum-config-manager 工具設置 Yum 源。
~~~
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
~~~
2、執行以下命令,添加 Docker 的 Yum 源。
~~~
$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
~~~
3、【可選】啟用測試倉庫。測試倉庫包含在 docker.repo 文件中,但默認情況下禁用的。
如需啟用測試倉庫,可使用以下命令:
~~~
$ sudo yum-config-manager --enable docker-ce-edge
~~~
~~~
$ sudo yum-config-manager --enable docker-ce-test
~~~
如想要禁用測試倉庫,可執行以下命令:
~~~
$ sudo yum-config-manager --disable docker-ce-edge
~~~
<br>
## **四、安裝Docker**
1、更新 Yum 包的索引
~~~
$ sudo yum makecache fast
~~~
2、安裝最新版本的 Docker
~~~
$ sudo yum install docker-ce
~~~
3、在生產系統中,可能需要安裝指定版本的 Docker ,而并不總是安裝最新的版本。
執行以下命令,即可列出可用的 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、執行以下命令,驗證安裝是否正確
~~~
$ sudo docker run hello-world
~~~
6、查看 Docker 版本
~~~
docker version
~~~
<br>
## 五、卸載 Docker
1、卸載 Docker 軟件包
~~~
$ sudo yum remove docker-ce
~~~
2、如需刪除鏡像、容器、卷以及自定義的配置文件,可執行以下命令
~~~
$ sudo rm -rf /var/lib/docker
~~~
<br>
## 六、配置鏡像加速器
國內訪問 Docker Hub 的速度很不穩定,有時甚至出現連接不上的情況。為 Docker 配置鏡像加速器,從而解決這個問題。目前國內很多云服務商都提供了鏡像加速的服務。常用的鏡像加速器有:
阿里云加速器、DaoCloud加速器等。
以阿里云加速器為例:
1、注冊阿里云賬號,即可在阿里云控制臺([https://cr.console.aliyun.com/#/accelerator](https://cr.console.aliyun.com/#/accelerator))
2、按照提示說明,即可配置鏡像加速器。
<br>
## 七、ipv4轉向配置
若啟動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`則表示成功了
- 第零章 序
- 序言
- 系統架構
- 視頻公開課
- 開源版介紹
- 商業版介紹
- 功能對比
- 答疑流程
- 第一章 快速開始
- 升級必看
- 環境要求
- 環境準備
- 基礎環境安裝
- Docker安裝基礎服務
- Nacos安裝
- Sentinel安裝
- 插件安裝
- 建數據庫
- 工程導入
- 導入Cloud版本
- 導入Nacos配置
- 導入Boot版本
- 工程運行
- 運行Cloud版本
- 運行Boot版本
- 工程測試
- 測試Cloud版本
- 測試Boot版本
- 第二章 技術基礎
- Java
- Lambda
- Lambda 受檢異常處理
- Stream 簡介
- Stream API 一覽
- Stream API (上)
- Stream API (下)
- Optional 干掉空指針
- 函數式接口
- 新的日期 API
- Lombok
- SpringMVC
- Swagger
- Mybatis
- Mybatis-Plus
- 開發規范
- 第三章 開發初探
- 新建微服務工程
- 第一個API
- API鑒權
- API響應結果
- Redis緩存
- 第一個CRUD
- 建表
- 建Entity
- 建Service和Mapper
- 新增 API
- 修改 API
- 刪除 API
- 查詢 API
- 單條數據
- 多條數據
- 分頁
- 微服務遠程調用
- 聲明式服務調用 Feign
- 熔斷機制 Hystrix
- 第四章 開發進階
- 聚合文檔
- 鑒權配置
- 跨域處理
- Xss防注入
- 自定義啟動器
- Secure安全框架
- Token認證簡介
- Token認證配置
- PreAuth注解配置
- Token認證實戰
- Token認證加密
- 日志系統
- 原理解析
- 功能調用
- Seata分布式事務
- 簡介
- 編譯包啟動
- 配置nacos對接
- docker啟動
- 對接微服務
- 代碼生成配置
- 前言
- 數據庫建表
- 代碼生成
- 前端配置
- 優化效果
- 第五章 功能特性
- SaaS多租戶
- 概念
- 數據隔離配置
- 線程環境自定義租戶ID
- 多終端令牌認證
- 概念
- 系統升級
- 使用
- 第三方系統登錄
- 概念說明
- 對接說明
- 對接準備
- 配置說明
- 操作流程
- 后記
- UReport2報表
- 報表簡介
- 對接配置
- 報表后記
- 接口報文加密
- 簡介
- 運行邏輯
- 對接準備
- 功能配置
- 接口測試
- 改造查詢
- 改造提交
- 改造刪除
- 動態數據權限
- 數據權限簡介
- 數據權限開發
- 純注解配置
- Web全自動配置
- 注解半自動配置
- 數據權限注意點
- 動態接口權限
- 樂觀鎖配置
- 統一服務登陸配置
- Skywalking追蹤監控
- Minio分布式對象存儲
- Boot版本對接至Cloud
- 第六章 生產部署
- windows部署
- linux部署
- jar部署
- docker部署
- java環境安裝
- mysql安裝
- docker安裝
- docker-compose安裝
- harbor安裝
- 部署步驟
- 寶塔部署
- 準備工作
- 安裝工作
- 部署準備
- 部署后端
- 部署前端
- 部署域名
- 結束工作
- k8s平臺部署
- 第七章 版本控制
- Git遠程分支合并
- Git地址更換
- 第八章 學習資料
- 第九章 FAQ
- 第十章 聯系我們